15、构造器是否可被override

constructor(构造器)不能被继承,所以不能被override(重写),但是可以被overloading(重载)。

16、抽象类和接口的区别

抽象类是什么

含有abstract修饰符的class即为抽象类。

特点:

1、不能创建的实例对象

2、可以有抽象方法

3、可以有构造方法,但构造方法不能是抽象的

4、抽象方法必须子类进行实现,如果子类只实现部分方法,该子类必须是抽象的

接口是什么

含有interface修饰符的就是

特点:

1、接口中的所有方法都必须是抽象的

2、接口中的方法定义默认为public abstract类型

3、接口中的成员变量类型默认为public static final

区别是什么

  1. 单继承多实现:一个类可以实现多个接口,但只能继承一个抽象类。

  2. 构造方法:抽象类可以有构造方法,接口中不能有构造方法。(JDK7之前)

  3. 变量:抽象类中可以有普通成员变量,接口中只有常量。

  4. 方法:抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

  5. 修饰符:抽象类中的抽象方法可以使用public和protected进行修饰,但接口中的抽象方法只能使用public abstract修饰。

  6. 静态方法:抽象类中可以包含静态方法,接口中不能包含静态方法

  7. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

(注:JDK1.8新特性,接口可以有默认方法和静态方法)

10-22 03:23