java 接口类和抽象类的区别

接口与类的区别和联系:

联系:他们都不能实例化对象,都可以包含抽象方法,而且抽象方法必须被继承的类全部实现。

区别:1. 接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。

也就说抽象类里既可以有抽象方法,也可以没有,但是接口里的方法必须全部是抽象方法。

  1. 接口里只能定义静态常量,不能定义普通成员变量,抽象类里则既可以定义普通成员变量,也可以定义静态常量。
  2. 接口不能包含构造器,抽象类可以包含构造器

4 抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

5接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法; 接口里不能包含初始化块,但抽象类里完全可以包含初始化块。

6 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

  1. 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

猜你喜欢

转载自blog.csdn.net/chaobin6/article/details/81195772