(接口实现类多重继承及名字冲突)编写一个Java程序,要求定义两个接口Face01 和Face02,在接口Face01中定义一个抽象方法 getName() 和一个默认方法 getNum() ,在接口Face02中定义一个同名的默认方法 getNum();再定义NameConflict 类实现这两个接口,实现抽象方法 getName() 和默认方法getNum(),并在其中委托父接口Face01中的同名默认方法;
时间: 2024-02-09 11:08:49 浏览: 38
下面是代码实现:
```java
interface Face01 {
void getName(); // 抽象方法
default void getNum() { // 默认方法
System.out.println("Face01中的默认方法getNum()");
}
}
interface Face02 {
default void getNum() { // 默认方法
System.out.println("Face02中的默认方法getNum()");
}
}
class NameConflict implements Face01, Face02 {
public void getName() { // 实现Face01中的抽象方法
System.out.println("实现了Face01中的抽象方法getName()");
}
public void getNum() { // 实现Face02中的默认方法,并委托Face01中的同名方法
Face01.super.getNum();
}
}
public class MainClass {
public static void main(String[] args) {
NameConflict obj = new NameConflict();
obj.getName(); // 调用Face01中的抽象方法
obj.getNum(); // 调用NameConflict中的getNum()方法,实际上委托了Face01中的getNum()方法
}
}
```
运行结果:
```
实现了Face01中的抽象方法getName()
Face01中的默认方法getNum()
```
在本例中,定义了两个接口Face01和Face02,它们都有一个名字为getNum()的默认方法。然后定义了一个类NameConflict,实现了Face01和Face02两个接口,并实现了Face01中的抽象方法getName()和Face02中的默认方法getNum(),在getNum()方法中委托了Face01中的同名方法。最后在主函数中实例化一个NameConflict对象,并调用它的getName()和getNum()方法来输出结果。
阅读全文
相关推荐












