第十四章 抽象类
笔试题
一、填空题
1. 【基础题】抽象类的关键字是abstract 。
2. 【基础题】抽象类 可以 实现接口,可以继承实体类。
3. 【基础题】抽象类不能被实例化,抽象类可以有构造函数 。
4. 【基础题】如果一个类里有一个以上的抽象方法,则该类必须声明为抽象类,该方法也必须声明为抽象方法 。
二、选择题
三、名词解释
四、问答题
1. 【中等题】什么是抽象类?
答:
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。==========================
2. 【中等题】抽象类为什么不能实例化?
答:
抽象类就是类里面含有了抽象的方法。抽象的方法就是没有实现的方法
有抽象的方法当然不能实例化,如果它能实例 那么这个实例调用那个没有实现的抽象类会有什么结果。所以抽象类不能实例化
3. 【中等题】抽象类的方法是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:
抽象方法不可被上述三个中的任意一个修饰,抽象方法只能被public或protected修饰,其他修饰符皆不可以。抽象类的一般就是没有什么具体的实现,主要是让子类来帮助他实现。如果在再abstract之前加static,native,synchronized这些修饰符没有任何意义
4. 【中等题】Java中的抽象类有没有对象?
答:
抽象类可以声明对象,但是不能使用自身的构造方法创建对象,但是可以使用子类的构造方法进行创建。
public abstract class A{}
public class B extends A{}
A a = new B();