Man*_*mar 5 java interface java-8 default-method
如果我有两个接口使用相同的默认方法,并且都使用类实现/请参阅此程序.
interface alpha {
default void reset() {
System.out.println("This is alpha version of default");
}
}
interface beta {
default void reset() {
System.out.println("This is beta version of default");
}
}
class MyClass implements alpha, beta {
void display() {
System.out.println("This is not default");
}
}
class main_class {
public static void main(String args[]) {
MyClass ob = new MyClass();
ob.reset();
ob.display();
}
}
Run Code Online (Sandbox Code Playgroud)
然后会发生什么?而且这个程序我也得到了无关的错误.
您无法实现具有相同Java 8默认方法签名的多个接口(不会在子类中显式覆盖)
.您可以通过实现方法Eg来解决它
class MyClass implements alpha, beta {
void display() {
System.out.println("This is not default");
}
@Override
public void reset() {
//in order to call alpha's reset
alpha.super.reset();
//if you want to call beta's reset
beta.super.reset();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |