1.接口的修饰符: abstract(默认不写。interface本身就是抽象的,加不加abstract都一样)
2.接口的属性: 用public static final修饰,默认不行,属性必须显式赋值
解释:
- public:接口中的所有成员默认都是公共的,因为接口本身是用来被实现类使用的,所有实现类都需要能够访问这些属性。
- static:接口中的属性是静态的,因为接口本身不能被实例化,所有实现类共享这些属性。静态属性属于类级别,而不是实例级别。
- final:接口中的属性是常量,不可修改。一旦赋值,就不能再改变。这确保了这些属性在整个程序中保持一致性。
3.抽象方法
4.默认方法
5.静态方法
6.静态私有方法
7.非静态私有方法
问题
1.引入默认方法的主要原因:
在Java 8之前,接口中只能包含抽象方法。添加新的方法到接口中会破坏现有的实现,因为所有实现该接口的类都必须实现新增的方法。默认方法允许在接口中添加新方法而不破坏现有的实现。这使得接口可以随时间推移进行扩展,而不会影响已经实现了该接口的类。
2.引入静态方法的主要原因:
静态方法可以用于在接口中定义一些公共的辅助方法,这些方法通常是与接口的操作密切相关的工具方法。
3.引入私有方法的主要原因:
私有方法可以用于在接口中实现代码复用。默认方法调用非静态私有方法、静态方法调用静态私有方法,从而避免代码重复,提高代码的可维护性。