Java 接口和抽象(或超级)类方法之间的首选项

Java 接口和抽象(或超级)类方法之间的首选项,java,interface,superclass,Java,Interface,Superclass,我有一个问题: 在Java中,我有一个类fresh,它扩展了Employee并实现了一个接口IFresher。请参考下面的代码 public interface IFresher { // Some other stuff public void takeCall(); } public class Employee extends Human { // Some other stuff public abstract void takeCa

我有一个问题: 在Java中,我有一个类fresh,它扩展了Employee并实现了一个接口IFresher。请参考下面的代码

public interface IFresher {
        // Some other stuff
    public void takeCall();
}



public class Employee extends Human {
        // Some other stuff
    public abstract void takeCall()
       {
          // Some basic implementation
       }

}

class  Fresher extends Employee implements IFresher
{
        @Override
    public void takeCall() {

    }
}
问:哪个takeCall()方法在更新鲜的子类中实现,是来自接口还是来自超类,
在这种情况下,当超类和接口之间发生冲突时,层次结构的顺序是什么?

在您的情况下,Fresh优先,特别是因为您显式重写了


接口不被考虑,因为它们只为功能签名提供合同,而没有功能

在这种情况下不会有任何冲突-因为接口不包含实现,所以只能有一个(超类)实现从中继承

Fresh将从Employee继承实现(在本例中覆盖takeCall方法)。但它也将成功地实现IFresher,因为它有一个具有正确签名的函数


(旁白:这是Java中不允许多实现继承的主要原因,定义它应该如何工作变得非常棘手)

可能的重复接口名称前面不需要
I
。我知道不需要I,但只需遵循一个命名约定:)可能重复感谢您的回答和澄清,但就多重实现继承而言,您能为上述情况提出更好的设计吗?