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的抽象方法,这时应该怎么办呢?真是忠孝不能两全,鱼与熊掌不能兼得啊,哪位高手指教下

解决方案 »

  1.   

    这个很崩溃啊
    可不可以这样
    当你想用Valuable的getMoney的时候就把Hen实例转型为Valuable类型的然后调用getMoney方法
    同样A也如上操作试试看
      

  2.   

    这段代码有问题
    当你同时实现这两个接口时,必然要覆写接口中的方法,就会出现下面的两个方法:
    public double getMoney() {
        return 1.0;
    }public void getMoney() {}
    一个类中同时出现这两个方法时,编译就不可能通过。因为无法确定你到底想调用哪个getMoney方法。(你可以去看一下重载的条件)。
      

  3.   

    我知道不能通过啊,我写的时间就是错误的,可是这两个接口里面都有getMoney的方法,这两个方法都得重写,但是一旦你重写又是错误,这该怎么办呢?
      

  4.   

    你的Hen实现一个接口,可以考虑增加一个类Hen1实现另一个接口,各自实现其接口的getMoney方法,再在Hen中调用Hen1类中的相应方法。