详述抽象抽象类与接口的区别

详述抽象抽象类与接口的区别

抽象类

抽象类:用abstract修饰的类是抽象类
抽象方法:用abstract修饰的方法是抽象方法,方法只有声明没有方法体
特点:

  • 抽象类不能被实例化,即不能用关键字new来创建对象
  • 抽象类的子类必须实现该类的所有抽象方法,否则该子类也是抽象类
  • 抽象类中抽象方法是多态的一种表现形式
  • 可以有具体的方法,该方法可以用子类调用

注意:abstract不能与final、private、static一起使用

接口

接口:是抽象方法的集合,用interface修饰
特点:

  • 接口内只包括常量(默认为 public static final 修饰)、抽象方法(必须是public)和内部类
  • 不能创造对象,也没有构造方法
  • 接口只能继承接口,可以继承多个接口,接口之间用,隔开
  • 一个类实现一个接口,但没有实现接口中所有抽象方法,则这个类为抽象类
  • 多个接口中定义了相同的抽象方法,只实现其中的一个就行
  • Java8开始,接口中可以添加一个或多个由static修饰的非抽象方法,由接口或实现类直接调用(静态方法实现)
抽象类与接口的区别
区别 抽象类 接口
关键字 abstact interface
构造方法 没有
继承 单继承 多继承
实现方法 extends implements
成员变量 任何合法的成员变量 只能为public static finnal 的变量
方法 任何合法的方法 只有抽象方法,JDK8可以有static或default修饰的具体方法
发布了4 篇原创文章 · 获赞 0 · 访问量 27

猜你喜欢

转载自blog.csdn.net/qq_45738402/article/details/105147942