抽象类和接口的区别

188 阅读1分钟

接口

某一种类的说明,不包含具体的方法,所有方法都是抽象的,不能实例化,实现接口的类可以实例化,变量都为public static final.

接口好处:

  • 实现抽象
  • 运行支持动态调用
  • 减少耦合
  • 从继承分离方法的定义

抽象类

带有关键字abstract的类,知识一个抽象方法,可以有多种具体方法,不能被实例化。

抽象类好处

  • 为子类提供默认功能方法
  • 为支持提供模板
  • 为子类提供公共接口
  • 允许代码重用

区别:

接口 抽象类
实现多重 继承一个
抽象方法 抽象,具体
日后增加 避免依赖
添加比较复杂 默认实现比较好
只能public 可以用不同的修饰符
多重实现,多态 相同类型共同行为
不能包含数据域 可以有数据域
不提供准则 可以提供默认的实现
接口可以继承多重接口,不能继承类 可以继承一个类和多个接口
没有构造器 有构造器
只能单继承接口 单继承类或者抽象类

原文链接