试图理解接口在Java中两个类之间继承中的作用

时间:2012-06-19 21:49:38

标签: java inheritance interface

我想了解接口在两个类之间的继承中扮演的角色。

我的理解是你可以使用extends创建超类和子类。

class Parent {
}
class Child extends Parent {
}

这已经足以创建超类和子类。

我们什么时候需要界面?对于孩子或父母,我们需要implements吗?

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

4 个答案:

答案 0 :(得分:2)

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

例如,Car(ssuperclass)是Vehicle(接口)。自奥迪推出汽车以来,奥迪也是一款车型。

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

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

答案 1 :(得分: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将实现该接口。

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

接口和父类之间的主要差异是
1)你无法实例化界面(它甚至没有构造函数)
2)所有方法必须是抽象的 3)您必须覆盖实现它的类中的所有接口方法。