接口

booniez2024-04-22 15:41:44后台 Java继承
  • 接口中的变量默认会被 final 修饰
  • 接口中的变量默认会被 static修饰
  • 接口中的变量默认会被 public修饰
  • 没有构造方法,不能有自己的实例

TIP

可能会好奇,实现类构造方法调用的 super() 是调谁的构造方法

每个 class 默认会继承 Object 所以,调用的 Object 的构造方法

  • 成员方法默认是抽象方法,系统会默认加上 abstractpublic修饰

WARNING

只在 JDK7中有这个说法,JDK8、JDK9有一些新特性 JDK8 以后

  • 可以创建非抽象方法,使用 default修饰

    • 如果实现类实现了多个接口,多个接口拥有相同的方法声明,在实现类中,就必须重写该方法,不然就不知道调用谁的逻辑
  • 允许创建静态方法 (静态方法只能通过类名去调用,不能通过实现类类名或者实例去调用)

JDK9 以后 可以创建私有方法

  • 如果直接父类和接口方法重名,优先使用直接父类的逻辑

类和接口的关系

  • 类与类 继承关系,只能单继承,但是可以多层继承

  • 类和接口 实现关系,可以单实现,也可以多实现,还可以在继承一个类的时候实现多个接口

  • 接口和接口的关系 继承关系,可以单继承,也可以多继承

最后更新 7/10/2024, 5:45:07 AM
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.8