Loading... # 概述 接口是一种引用数据类型,是方法的集合。接口内部主要封装了方法。 使用 `interface` 关键字定义,会被编译成.class文件。 接口不能创建对象,但是其他类可以使用 `implements` 实现接口。其他接口也可以使用 `extends` 继承接口。 【注意】 如果实现类没有重写接口的所有抽象方法,那么该实现类必须是一个抽象类。 # 定义格式 ```java has-numbering public interface 接口名称 { // 常量 -- jdk7 // 抽象方法 -- jdk7,abstract // 默认方法 -- jdk8,default,解决接口的升级问题 // 静态方法 -- jdk8,static // 私有方法 -- jdk9,private } ``` ## 常量 jdk7。 使用 `public static final` 修饰,可以省略。其值不可改变。 ## 抽象方法 jdk7。 使用 `public abstract` 修饰,可以省略不写。该方法供子类实现使用。 ## 默认方法 jdk8。 使用 `public default` 修饰,不可省略。该方法供子类调用或者重写。解决接口的升级问题。 ## 静态方法 jdk8。 使用 `public static` 修饰。该方法供子类直接调用。使用接口名称直接调用,不能用接口实现类对象调用接口中的静态方法。 ## 私有方法 jdk9。 使用 `private` 修饰。该方法供接口中的默认方法或者静态方法调用。用来解决代码冗余问题。 * 普通私有方法:只有默认方法可以调用。 * 静态私有方法:默认方法和静态方法都可以调用。 # 基本的实现 类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。使用 `implements` 关键字。 【注意】 * 如果实现类没有重写所有抽象方法,那么该实现类必须是抽象类。 # 接口的多实现 对于接口而言,一个类是可以实现多个接口的,这叫做接 口的多实现。并且,一个类能继承一个父类,同时实现多个接口。 【注意】 * 一个类的直接父类是唯一的,但是一个类可以实现多个接口。 * 如果所实现的多个接口的抽象方法重名,重写一次即可。 * 如果所实现的多个接口的默认方法重名,则必须重写一次。 * 如果所实现的多个接口中的静态方法重名,并不会发生冲突。因为只能通过各自的接口名访问静态方法。 * 如果父类方法和接口默认方法重名,则优先调用父类方法。 # 接口的多继承 一个接口能继承另一个或者多个接口,这和类之间的继承比较相似。接口的继承使用 `extends` 关键字,子接口继 承父接口的方法。如果父接口中的默认方法有重名的,那么子接口需要重写一次。 # 接口的其他成员 * 接口中没有构造方法,不能创建对象。 * 接口中没有静态代码块。 > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2021 年 11 月 03 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏