public interface Valuable {
public double getMoney();
}interface Protectable {
public void beProtected();
}interface A extends Protectable {
void m();
void getMoney();
}class Hen implements A ,Valuable {
public void m() {}
public void beProtected() {}
public double getMoney() {
return 1.0;
}
public void getMoney() {}}请看接口Valuable和A都有getMoney的抽象方法,而Hen有继承了两个接口,这时就会有两个getMoney的抽象方法,这时应该怎么办呢?真是忠孝不能两全,鱼与熊掌不能兼得啊,哪位高手指教下
public double getMoney();
}interface Protectable {
public void beProtected();
}interface A extends Protectable {
void m();
void getMoney();
}class Hen implements A ,Valuable {
public void m() {}
public void beProtected() {}
public double getMoney() {
return 1.0;
}
public void getMoney() {}}请看接口Valuable和A都有getMoney的抽象方法,而Hen有继承了两个接口,这时就会有两个getMoney的抽象方法,这时应该怎么办呢?真是忠孝不能两全,鱼与熊掌不能兼得啊,哪位高手指教下
可不可以这样
当你想用Valuable的getMoney的时候就把Hen实例转型为Valuable类型的然后调用getMoney方法
同样A也如上操作试试看
当你同时实现这两个接口时,必然要覆写接口中的方法,就会出现下面的两个方法:
public double getMoney() {
return 1.0;
}public void getMoney() {}
一个类中同时出现这两个方法时,编译就不可能通过。因为无法确定你到底想调用哪个getMoney方法。(你可以去看一下重载的条件)。