-3

我想了解接口在两个类之间的继承中所起的作用。

我的理解是,您可以使用extends.

class Parent {
}
class Child extends Parent {
}

这对于创建超类和子类已经足够了。

我们什么时候需要接口?我们需要implements孩子还是父母?

class Parent {
}
class Child extends Parent implements MyInterface {
}
interface MyInterface {
}
4

4 回答 4

2

继承和接口实现定义了一个is-a关系。这意味着是子类A扩展了超类B,A-a B。如果超类B实现接口I,B-a I。并且由于A是-a A A也是I。

例如,一个 Car(ssuperclass)是一个 Vehicle(接口)。既然奥迪扩展了汽车,奥迪也是车辆。

子类不能小于其父类,但可以更多。因此,子类可能会实现其父类未实现的接口。

例如,所有汽车都不是混合动力车(界面)。但这并不能阻止作为汽车的普锐斯成为混合动力车。普锐斯不仅仅是一辆汽车。它也是一个混合体。

于 2012-06-19T21:54:22.100 回答
1

基本上,接口用于为实现它的类创建指南。

接口和父类之间的主要区别是
1)您不能实例化接口(它甚至没有构造函数)
2)它的所有方法必须是抽象的
3)您必须覆盖实现它的类中的所有接口方法.

于 2012-06-19T21:56:32.860 回答
1

从基类继承的类的概念独立于实现接口的类。在第一种情况下,继承类“免费”获得其基类的接口和实现;在第二种情况下,检查一个类是否符合它声明要实现的接口。

子类继承其基类实现的接口,但也可以自由实现其他接口。当单个层次结构中的类必须承担多个角色时,这非常方便,具体取决于它们在层次结构中的位置。

于 2012-06-19T21:53:54.920 回答
1
interface MyInterface {
}

class Parent implements MyInterface{
}
class Child extends Parent {
       // Implements MyInterface because it's parent does
}
class Child2 extends Parent implements AnotherInterface {
       //  Child2 class now implements both
       // MyInterface as well as AnotherInterface
}

不确定您是否在询问扩展接口,但这也是可能的:

interface MyInterface {
}

interface MySecondInterface extends MyInterface {
}

当您希望您的类使用所描述的常量并定义接口中包含的方法签名时,您可以实现接口。

因此,如果您希望您的 PARENT 类使用常量并定义方法,那么您的 PARENT 将实现接口。如果您希望您的 CHILD 类使用常量并定义方法,那么您的 CHILD 实现该接口。

于 2012-06-19T21:53:27.983 回答