如果一个类实现了多个接口,那么它的类型是什么?
例如,如果Example
类实现Interface1
,Example
成为Interface1
类型?如果是这样,如果它也实现Interface2
会发生什么。那么类Example
是什么类型的?
答案 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
中的方法。