编写一个java程序,在程序中定义NameConflict类的同时实现接口Face1和Face2。在接口Face1中定义一个抽象方法getName(),返回值为String类型;定义一个默认方法getNum(int a),返回值为int型,方法体计算10*a。在接口Face2中定义一个同名的默认方法getNum(int a),返回值为int型,方法体计算a*a。在类NameConflict中,有成员变量String型name;要实现父接口的getName()方法返回成员变量name;委托父接口Face1的getNum()方法。在主类中,创建NameConflict类对象p,该对象的name为孙悟空;调用getNum()方法,传值为5;打印输输出name和 getNum()的值。
时间: 2024-03-18 21:41:21 浏览: 35
好的,以下是Java程序的代码实现:
```java
interface Face1 {
String getName();
default int getNum(int a) {
return 10 * a;
}
}
interface Face2 {
default int getNum(int a) {
return a * a;
}
}
class NameConflict implements Face1, Face2 {
private String name = "";
public NameConflict(String name) {
this.name = name;
}
@Override
public String getName() {
return this.name;
}
@Override
public int getNum(int a) {
return Face1.super.getNum(a);
}
}
public class Main {
public static void main(String[] args) {
NameConflict p = new NameConflict("孙悟空");
System.out.println("Name: " + p.getName());
System.out.println("Num: " + p.getNum(5));
}
}
```
运行结果为:
```
Name: 孙悟空
Num: 50
```
阅读全文