如果一个类在Java中实现了比其他类更多的类,那么它是什么类型的?

时间:2016-01-23 11:45:51

标签: java inheritance multiple-inheritance

如果一个类实现了多个接口,那么它的类型是什么?

例如,如果Example类实现Interface1Example成为Interface1类型?如果是这样,如果它也实现Interface2会发生什么。那么类Example是什么类型的?

2 个答案:

答案 0 :(得分:2)

短语"成为interface1"不清楚。

在OO设计中,一个类应该代表一个特定的"对象"或"事情"在您的问题域中。如果你正在编写一个系统来模拟高速公路上的车辆,那么你可能会有车辆"," road"等等的类(或接口)。

让我们说系统的一部分也处理商用车辆;税收等等。所以可能会有一类"车辆"和#34; CommercialVehicle"的界面,后者提供获得与车辆的道路税相关的属性的方法。并非所有的车辆都是CommercialVehicles,但其中一些会实现该界面。

Vehicle类型的对象可能会也可能不会实现该接口。如果它确实实现了接口,则可以保证它具有相关的方法。您可以使用" instanceof"运算符,用于确定特定对象是否实现接口。

但我不确定你的意思是"成为界面类型",所以我不确定如何回答这个问题。

答案 1 :(得分:0)

Implementing用于接口。 Extending用于课程 在Java中,您可以实现许多接口,但只能扩展一个接口。

如果你扩展一个类,你就不会成为任何东西,但你确实继承了它的成员(字段,方法,子类)。

根据你的(模糊)问题,让我们假设:

public interface Interface1 {
    void myMethod(Interface1 other); // using public is redundant in interfaces
}

public class Example implements Interface1, Interface2 { ... }

然后Example的类型为Example(...),当我需要在界面中实现方法时:

public void myMethod(Interface1 myObject) {
    Example myClass = (Example)myObject;
}

我需要cast来使用Example中的方法。