接口(java)
·
1. 接口的访问修饰符限制
接口的访问修饰符只能是 public 或者默认(包访问权限),不能用 private 或 protected;接口内的抽象方法、默认方法、静态方法,其访问修饰符只能是 public,写不写都会默认带上。
2. JDK 9 新增的私有方法
JDK 9 开始允许接口定义 private 方法,包括普通私有方法和私有静态方法,作用是给接口内的默认方法、静态方法做逻辑复用,这些私有方法不能被实现类访问或重写。
3. 接口与多态的关联
可以直接用接口类型声明变量,然后指向其实现类的对象,这是多态的常见用法;调用这个变量的方法时,执行的是实现类的具体逻辑,能大大提高代码的灵活性。
4. 抽象方法的特殊写法
接口的抽象方法可以省略 public abstract 修饰符,但本质上还是公开的抽象方法;实现类重写这些方法时,不能降低访问权限(比如不能写成 private)。
5. 接口常量的使用注意
接口里的常量默认是 public static final,必须在声明时直接赋值,后续无法修改;如果多个接口有同名常量,实现类引用时必须通过“接口名.常量名”来区分,否则会冲突。
6. 接口作为方法参数/返回值
方法的参数或返回值可以定义为接口类型,这样任何实现了该接口的类的对象,都能作为参数传入或返回值传出,极大提升了方法的通用性。
7. 函数式接口的特殊地位
只有一个抽象方法的接口被称为函数式接口,它可以配合 Lambda 表达式使用,简化代码编写;JDK 提供了 @FunctionalInterface 注解来校验接口是否符合函数式接口的规范。
更多推荐

所有评论(0)