php - 多重继承和多态有什么区别?

标签 php oop polymorphism multiple-inheritance

多重继承和多态有什么区别?

在一本书中我用红线表示

类级别不支持多重继承。这意味着您一次不能扩展多个类。

这与在同一本书中描述的多态性概念相矛盾

多态是从特定基类创建多个对象的过程

现在,如果 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/

相关文章:

c++ - 派生到基隐式指针类型转换

c# - 多态性的类型。超过一个?

PHP MySQL 选择长度错误

php - JavaScript 函数行为不正确

php - 如果未为发布设置缩略图,则 SQL 查询不会显示结果

php - Laravel 队列错误 'Illuminate\Http\UploadedFile' 的序列化是不允许的

php - 在方法中声明 protected 变量

perl - 为什么perl对象实例会互相覆盖

java - 接口(interface)类型的实例变量无法访问实现类的方法,而实现类类型的实例变量可以访问

class - GO接口(interface)中的多态性