首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可以使用组合而不是继承来实现多态物理吗?(在Java中)

可以使用组合而不是继承来实现多态物理吗?(在Java中)
EN

Stack Overflow用户
提问于 2018-08-12 07:30:15
回答 2查看 818关注 0票数 3

我正在学习Java,我知道什么是继承和组合,我看到了许多使用继承展示的多态模型的例子,所以我的第一个问题是,使用组合也可以做到吗?如果是,请举一个小例子。

我的第二个问题是,是否可以说polymorpysim基本上是方法重载和/或方法重载?如果是,那是为什么?

EN

回答 2

Stack Overflow用户

发布于 2018-08-12 08:58:42

不,不是真的。多态性和组合或聚合(组合是一种更严格的聚合形式,其中组合对象的生命周期被捆绑在一起)是重用类的不同方式。

组合涉及聚合多个对象以形成单个实体。多态性涉及具有相似行为的多个对象。

例如,汽车对象可能由两个轴对象、一个底盘对象、四个车轮对象(其本身可能由一个轮子、一个轮胎、六个LugNuts等组成)组成。这就是构图。

汽车对象本身可能也没有什么用处,但它可以作为许多更专业的汽车实现的蓝图,比如SportsCar、SUVCar、SedanCar等。在这种情况下,Car对象可能会定义一个Car接口,该接口将定义诸如Steer、HitTheGas和Brake等常见行为,但将这些行为的实现留给实现类。这就是多态性。

要获得这两个方面的不错教程,并进行一些比较,请查看this。请记住,UML图有一个不准确的地方:虽然示例确实描述了组合,而不是聚合,但相关的UML类图在应该是黑色的地方有白色菱形。UML类图语法使用白色菱形表示聚合类关联,使用黑色菱形表示复合类关联。

此外,this post还提供了一些很好的信息,特别是页面中段的tdammers的答案。

票数 1
EN

Stack Overflow用户

发布于 2018-08-12 08:08:38

重写就是你可以对类做的事情。还有权限和本地和/或全局作用域。任何类都有默认的构造函数。有命名空间作用域、程序、类等。

所有的类和方法都是函数,但并非所有的函数都是方法

您可以重写类,但不能重写方法。这些是静态的或易失性的。Cos方法只能返回值。所以覆盖这个方法是没有意义的。我希望这将使你,如果没有什么,朝着它应该是的样子。继承是多态工作的机制。

我为在太多数据中出现的无意错误道歉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51804559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档