Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

1.为什么需要默认方法

设想这样一种情况:有接口InterA,其中有两个方法a()和方法b();类ClassB实现了接口InterA,但对于类ClassB其并不需要实现方法b();(或是说,对于类ClassB来说,方法b()不是必须的。即,在类ClassB即不想实现方法b(),又不想让自己成为抽象类);

这个时候,只需在接口InterA中,将方法b()设置为默认方法即可:其中需要用到default关键字

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

且:默认方法必须带有方法体:

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

注:(1)调用默认方法时,可以:使用接口引用指向实现类实例对象的引用去调用;也可以实现类变量指向实现类实例对象的变量去调用。

(2)实现类中,可以重写默认方法,也可以不重写默认方法

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题


2.接口中的静态方法

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

自然接口中的静态方法无法在实现类中重写;可以通过“接口名.”的方式调用接口中的静态方法。


3.接口应用中的常见问题

(1)在一个Java文件可以存在多个类、多个接口,但是只能存在一个public修饰的类或接口,且此Java文件名需要与public修饰的类或接口同名:

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

否则会报错。

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

(2)

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

(3)

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题

Java多态八:接口中的默认方法;接口中的静态方法;接口应用中的常见问题