我试着这样做:
interface pet {
void sleep();
}
interface robot {
void sleep();
}
public class roboGarfield implements pet , robot {
/*
* this gives error
void pet.sleep(){
}
*/
@Override
public void sleep() { System.out.println("this isn't really specific.."); }
public static void main(String[] args){
roboGarfield t = new roboGarfield();
t.sleep();
((pet)t).sleep(); // similar to C#
((robot)t).sleep();
}
}
但即使我可以将roboGarfeild
对象转换为它的pet
或robot
类型,我也不能像 c# 那样做一个显式的实现。
有什么我做错了吗?还是只是在 java 中不支持?
编辑:所以,java 不支持像 C# 这样的显式接口实现。但是对于无法避免的情况,Holger 的委托方法似乎是一条出路。
感谢所有的答复。