【发布时间】:2013-05-26 16:10:32
【问题描述】:
假设我们有两个类,Tiger 和 Aeroplane。
这两种类型的共同点是速度。我知道创建超类ClassWithSpeed 然后从中派生子类Aeroplane 和Tiger 是不合逻辑的。
相反,最好创建一个包含方法speed() 的接口,然后在Aeroplane 和Tiger 中实现它。我明白了。但是,我们可以在没有接口的情况下做同样的事情。我们可以在Aeroplane 中定义方法speed(),在Tiger 中定义方法speed()。
唯一(可能是非常大的)缺陷是我们无法通过接口引用“访问”Tiger 和 Aeroplane 的对象。
我是 Java 和 OOP 的初学者,如果有人向我解释接口的作用,我将不胜感激。 干杯!
【问题讨论】:
-
听起来你已经发现了一个非常重要的“缺陷”......
-
你可以有一个方法
getCurrentSpeed(InterfaceWithSpeed)并称之为getCurrentSpeed(new Aeroplane())或getCurrentSpeed(new Tiger())。 -
这个问题很可能与programmers.stackoverflow.com有关。
-
你已经正确地理解了为什么我们有接口。您能否更清楚地说明问题到底是什么?
-
@RyanRansford 正确的链接是programmers.stackexchange.com。