Java示例中的多重继承

时间:2017-03-28 10:52:54

标签: java

考虑以下场景:我有两个接口AB。两个接口都具有成员函数display()

public interface A {
   public function display() {
   }
}

public interface B {
   public function display() {
   }
}

class C implement A, B {
   public function display{
       //definition here
   }
}

我只是想知道

  1. 课程display()中有多少C个功能?
  2. 如果有一个成员函数,怎么可能?

2 个答案:

答案 0 :(得分:3)

一个精彩的解释是:Implementing two interfaces in a class with same method. Which interface method is overridden?

  

如果一个类型实现了两个接口,并且每个接口定义了一个具有相同签名的方法,那么实际上只有一个方法,并且它们是不可区分的。例如,如果两种方法具有冲突的返回类型,那么它将是编译错误。这是继承,方法重写,隐藏和声明的一般规则,并且还适用于不仅可能在2个继承的接口方法之间发生冲突,还可以应用于接口和超类方法之间的冲突,甚至只是由于泛型的类型擦除引起的冲突

答案 1 :(得分:1)

  

C类中有多少个display()函数?

只有一个

  

如果有一个成员函数,怎么可能?

因为它们具有相同的签名

但是这在java中是禁止的,不可能使用相同的名称和不同的类型,你可以在这里了解更多Java - Method name collision in interface implementation