gpt4 book ai didi

java - 多态性是继承的迫在眉睫的副作用吗?

转载 作者:行者123 更新时间:2023-11-30 02:55:00 25 4
gpt4 key购买 nike

继承可以在没有多态性的情况下存在吗?或者它是迫在眉睫的副作用吗?这可能是一个错误的问题,但它将帮助我理解两者之间的关系。

最佳答案

Can inheritance exist without Polymorphism?

它们是相关的概念,但是,是的,有可能只有一个而没有另一个。在 Java 中,如果你对父类进行子类化,你也会得到一个子类型,但在其他语言中,情况可能并非隐式的。在某些语言中,继承可能只是代码重用的一种形式。

例如,在 C++ 中,如果不将方法标记为virtual,则不会获得多态性。请参阅此处的解释:Why do we need Virtual Functions in C++? 。另一方面,在 Java 中,所有公共(public)方法都是隐式虚拟

这是一个广阔的主题,在多种语言中都有多种风格。作为TL;DR(以及总体总体简化),您可以认为继承是代码重用的一种形式,而多态性是用子类型的对象替换类型的对象并且您的程序继续正常工作的能力。在 Java 中,这两件事是重叠的,你可以从另一件事中得到一个,但并非所有语言都是这样。

即使您从继承中获得了开箱即用的多态性,仍然有可能通过不遵守 Liskov substitution principle 来“破坏多态性”。 。就像我说的......一个广阔的主题。

关于java - 多态性是继承的迫在眉睫的副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com