3

我有一个关于如何将接口与继承联系起来的问题,例如:

如果A类实现了接口X,A类也是B类和C类的超类,我的问题是,这是否意味着B类和c类也会自动实现接口X?

4

6 回答 6

4

这取决于 A 类是否是抽象类。假设 A 类完全实现了接口 X,那么 B 和 C 都将实现 X。例如,每一行代码都很好......

X one = new A();
X two = new B();
X three = new C();
于 2013-10-30T12:14:48.117 回答
3

如果A类实现了接口X,A类也是B类和C类的超类,我的问题是,这是否意味着B类和c类也会自动实现接口X?

如果 A 有实现,则不会。否则,是的,他们需要这样做。

public interface X{ public void stuff();} 

public class A implements X { 
   // A not abstract, must implement "stuff()" 
   // therefore, B and C will automatically have an implementation of "stuff()" too
}

但如果 A 是抽象的

public abstract A implements X {
    // not implemented.  B and C will need to implement
    public abstract void stuff(); // not implemented 
}
于 2013-10-30T12:22:38.520 回答
0

no 不需要实现超类中的功能

假设如果

interface X(){

function A();


function B();

}

class A implements X(){
@override
function A(){
//do something
}

function B(){
//do something
}

}


class B extends A{


}
class C extends A{

}  //-> that time your subclass need to implement the functions.
于 2013-10-30T12:12:59.263 回答
0
Does it mean both class B and class c will automatically 
implement interface X as well?

并不真地。如果超类不是完全抽象的类,则不必在子类中实现超类中的所有方法。但是超级类中的所有属性都将继承给子类。

于 2013-10-30T12:13:58.463 回答
0

如果X是接口和A实现(不是抽象类)。无论层次结构中的任何其他类如何,A 类都需要实现其所有方法。

如果X是抽象类,那么 classB和 classC都应该提供 Class 中未提供的方法的实现A

在这两种情况下,ClassB和 ClassC都将是接口的实现X

于 2013-10-30T12:29:28.103 回答
0

X : 是一个接口

A:实现 X 的具体类

B : 扩展 A 的具体类

C : 扩展 A 的具体类

如果一个类实现一个类:这意味着实现类必须从接口实现(即定义所有方法)

IF A CLASS EXTENDS A CLASS :这意味着父类中的所有方法都可以在子类中使用,除非子类覆盖了这些方法。

现在我们得出结论,由于 B,C 扩展了 A 的所有方法,并且 A 实现了 X 的所有方法,因此 B,C 都在 A 中实现了接口 X 的方法。

但是我们不能说 B,C 实现 X 因为 B,C 没有约束从接口实现所有方法,但是 A 类必须实现所有方法

于 2013-10-30T12:33:19.140 回答