我想知道我是否正确理解完全抽象类和接口之间的理论差异。我理解技术差异。
我的理解是类用于具体对象和接口,用于这些对象可以展示的功能。所以,如果我正在制作汽车课程,并且我希望该汽车具有导航功能,那么我会创建导航界面而不是抽象类正确吗? (替换为任何功能,即自动停车等)
答案 0 :(得分:2)
你是对的。
船或飞机也可以具有自动停车功能或导航系统。 但在大多数模型中,有些东西要么是船只要么是汽车(让我们把飞行的汽车留下......)。
实际上,在Java中,抽象类是强制扩展特定(唯一)类别的好方法。如果你有AbstractPlane和AbstractBoat,你肯定一个对象是一个或另一个。
答案 1 :(得分:1)
这两者之间的理论差异在这里是偏离主题的,您可能想在http://programmers.stackexchange.com询问。
最接近的主题问题是你可以用它们做什么,你可能已经知道了 - class
可以implement
两个interfaces
,它可以{{1只有一个extend
。
答案 2 :(得分:0)
完全抽象的类与接口非常相似,几乎完全相同。当谈到特定语言时,会出现差异。例如,在Java类中,只能扩展另一个类,但可以实现许多接口。
关于你的例子是正确的。类是两个主要事物的集合:数据和处理该数据的方法。
答案 3 :(得分:0)
是的,你走在正确的轨道上。这样想吧。你有一个水果。但你不知道它可能是哪一个。所以你创建了一个界面水果,现在用户可以使用这个界面了。它可能是苹果,橘子或桃子。界面水果将具有一定的尺寸,颜色和环境。虽然这些信息根据不同类型的水果而变化。
换句话说,界面就像是一个非常具体的骨架,从长远来看你正试图完成。