多重继承和多态有什么区别?
在一本书中我用红线表示
类级别不支持多重继承。这意味着您一次不能扩展多个类。
这与在同一本书中描述的多态性概念相矛盾
多态是从特定基类创建多个对象的过程
现在,如果 PHP 不允许多重继承,那么如何允许多态性呢?
最佳答案
正如 Ikke 所说,多重继承 与多态无关。
如果我可以画一个类图,多重继承是这样的:
Base A Base B
^ ^
\ /
\ /
Child
因此,Child
类将从两个类继承属性和行为。许多语言如 Java 和 PHP 不允许这样做,但 Python 允许。
多态性,另一方面,是指您可以抽象出一种特化。首先是类图:
Animal
^ ^
/ \
/ \
Cat Dog
您可以执行以下操作:
// Assuming we have a pack of animals
// This is Java
for (Animal pet : pack)
pet.speak();
每个 pet
都会根据实现说不同的话。
关于php - 多重继承和多态有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696526/