接口和抽象类的异同比较

一、概念阐述

  • 抽象类
    1.抽象:非具体的功能
    2.抽象类:含有抽象功能的类,要用abstract关键字修饰
    3.抽象类的特点:
    3.1不能被实例化–但是它有构造方法–用于子类访问父类数据的初始化
    3.2抽象类的实例通过具体子类继承(需要重写抽象父类的所有抽象方法)的方式来实现,也就是多态。
    3.3抽象类的子类可以是抽象类,也可以是具体类。
    3.4抽象类中可以没有抽象方法,但是有抽象方法的类必须要定义成抽象类(注意有抽象方法不一定是抽象类,还有接口)
  • 接口
    1.接口:扩展功能
    2.格式:interface 接口名{}
    3.接口只是扩展功能,其中的方法不用实现,而是抽象的。所以接口也是抽象的。所以接口也不能直接实例化。
    4.接口的实例化:通过多态的方式,类来implements 接口{}
    5.接口的子类可以使抽象类,也可以是非抽象类(需要重写接口的所有抽象方法)。
    6.扩展:多态的分类:
    6.1具体类多态(几乎没有)
    6.2抽象多态(常用)
    6.3接口多态(最常用)
    7.接口没有构造方法

  • 抽象类和接口的异同

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_39091292/article/details/81628240