我尝试做了这个:
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的委托方法似乎是解决之道。
感谢所有回复。