彻底搞定接口和抽象类

1、抽象类是is-a的关系如果B是A 就用抽象类,而接口是like-a关系,如果B像A就用接口

2、接口和抽象类都不能被实例化,但是接口不能有构造函数,抽象类却可以有构造函数

3、接口里的变量默认都是 public static final(只能用public,其他修饰符不可以),抽象类修饰符是public、protected、default

4、接口只能包含静态方法,抽象类可以包含普通方法(只有一个抽象发法就成为抽象类)

5、接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性

6、类如果实现了一个接口,必须要实现接口里所有的抽象方法,要不然就被定义为抽象类

抽象类和接口的应用场景:当子类和父类之间存在有逻辑上的层次结构时,推荐抽象类;接口多用于不同类之间

原文地址:https://www.cnblogs.com/9797ch/p/11537197.html