abstract class | interface | |
定义 | abstract class关键字 | interface关键字 |
继承 | 抽象类可以继承一个类和实现多个接口,子类只能继承一个抽象类 | 接口只可以继承接口(一个或多个),子类可以实现多个接口 |
修饰符 | public,protected,默认 | public |
实现方法 | 可定义构造方法,抽象方法和具体方法 | 只可以定义构造方法 |
实现方式 | 子类使用extends继承,如果子类为非抽象方法,他需要提供抽象类中所有声明方法的实现 | 提供所有方法的实现 |
作用 | 重用 | 降低耦合 |
补充 | 可包含静态成员变量,普通成员变量,静态方法 | 可包含静态成员变量,不可普通成员变量,静态方法 |
关于耦合的个人理解,就是代码块之间的关联关系,接口之所以能降低耦合,就是因为多态的原因,父类 的接口的引用是指向子类的,子类的实现相互不影响,降低了模块的关联性