接口和抽象类的区别

短命女 2022-07-15 05:24 138阅读 0赞

相同点: 都不能被实例化,位于继承树的顶端,都包含抽象方法

不同点:

1、设计目的:接口体现的一种规范,类似与整个系统的总纲,制订了系统各模块应该遵循的标准,因此接口不应该经常改变,一旦改变对整个系统是辐射性的。

  1. 抽象类作为多个子类的共同父类,体现的是一种模板式设计,可以当作系统实现过程中的中间产品,已经实现了系统部分功能。
  2. 2、使用不同:
  3. 1)接口只能包含抽象方法,抽象类可以包含普通方法。
  4. 2)接口里不能定义静态方法,抽象类可以。
  5. 3)接口只能定义静态常量属性不能定义普通属性,抽象类可以。
  6. 4)接口不包含构造器,抽象类可以(不是用于创建对象而是让子类完成初始化)。
  7. 5)接口里不能包含初始化块,抽象类完全可以。
  8. 6)接口多继承,抽象类但继承(只能有一个直接父类)。

总结:

  1. 接口所有方法全是抽象方法只能 public abstract修饰 (默认public abstract修饰 ),属性默认public static final修饰。
  2. 抽象类除了包含抽象方法外与普通类无区别。

abstract可以修饰方法和类,不能修饰属性。抽象方法没有方法体

发表评论

表情:
评论列表 (有 0 条评论,138人围观)

还没有评论,来说两句吧...

相关阅读

    相关 抽象接口区别

    一、抽象类 1、概念:就将一些事物的共性进行抽象 如:麻雀、燕子都可以归为鸟;奔驰、宝马都可以归为车 2、那抽象类与普通类有什么区别呢? 别傻傻的纠结半天,

    相关 接口抽象区别

    相同点: 都不能被实例化,位于继承树的顶端,都包含抽象方法 不同点: 1、设计目的:接口体现的一种规范,类似与整个系统的总纲,制订了系统各模块应该遵循的标准,因此接口不应该

    相关 抽象接口区别

    抽象类的特点: 抽象类一般在父类中使用,而它的子类实现父类中的抽象方法; 如果父类中有一个或多个抽象方法,那么父类必须为抽象类; 抽象类里的抽象方法没有任何

    相关 抽象接口区别

    相同点 都代表系统的抽象层,有助于系统的松耦合; 都不能被实例化; 都能包含抽象方法; 从JDK8开始,接口中也可以像抽象类一样,提供默认的实现(方法

    相关 接口抽象区别

    接口:一种特殊“抽象类”,接口里不能包含普通方法,接口里的所有方法都是抽象方法。java8对接口进行了改进,允许在接口中定义默认方法,默认方法可以提供方法实现。 接口是从多个

    相关 接口抽象区别

        接口是对动作的抽象,这个对象能做什么。抽象类是对根源的抽象,这个对象是什么(一个类只能继承一个类(正如人不可能同时是生物和非生物),但可以实现多个接口(吃饭接口、走路接