概念差异:完全抽象的类v。接口

时间:2012-01-11 00:55:51

标签: java class interface abstraction

我想知道我是否正确理解完全抽象类和接口之间的理论差异。我理解技术差异。

我的理解是类用于具体对象和接口,用于这些对象可以展示的功能。所以,如果我正在制作汽车课程,并且我希望该汽车具有导航功能,那么我会创建导航界面而不是抽象类正确吗? (替换为任何功能,即自动停车等)

4 个答案:

答案 0 :(得分:2)

你是对的。

船或飞机也可以具有自动停车功能或导航系统。 但在大多数模型中,有些东西要么是船只要么是汽车(让我们把飞行的汽车留下......)。

实际上,在Java中,抽象类是强制扩展特定(唯一)类别的好方法。如果你有AbstractPlane和AbstractBoat,你肯定一个对象是一个或另一个。

答案 1 :(得分:1)

这两者之间的理论差异在这里是偏离主题的,您可能想在http://programmers.stackexchange.com询问。

最接近的主题问题是你可以用它们做什么,你可能已经知道了 - class可以implement两个interfaces,它可以{{1只有一个extend

答案 2 :(得分:0)

完全抽象的类与接口非常相似,几乎完全相同。当谈到特定语言时,会出现差异。例如,在Java类中,只能扩展另一个类,但可以实现许多接口。

关于你的例子是正确的。类是两个主要事物的集合:数据和处理该数据的方法。

答案 3 :(得分:0)

是的,你走在正确的轨道上。这样想吧。你有一个水果。但你不知道它可能是哪一个。所以你创建了一个界面水果,现在用户可以使用这个界面了。它可能是苹果,橘子或桃子。界面水果将具有一定的尺寸,颜色和环境。虽然这些信息根据不同类型的水果而变化。

换句话说,界面就像是一个非常具体的骨架,从长远来看你正试图完成。