Php 多重继承和多态性之间的区别是什么?

Php 多重继承和多态性之间的区别是什么?,php,oop,polymorphism,multiple-inheritance,Php,Oop,Polymorphism,Multiple Inheritance,多重继承和多态性之间的区别是什么 我在一本书里写了一句话 在类级别不支持多个继承。这意味着您一次不能扩展多个类。 这与多态性的概念相矛盾,在同一本书中描述为 多态性是从特定基类创建多个对象的过程 现在,如果PHP中不允许多重继承,那么多态性是如何被允许的呢?这两者之间几乎没有什么关系 多重继承在编译时/运行时之后是静态的。多态性是一种仅在运行时才决定调用子类型上的哪个方法的技术 PHP不允许多重继承。多重继承意味着一个对象从两个不同的父类继承。程序员自行车手既是程序员又是自行车手。当程序员类将其

多重继承和多态性之间的区别是什么

我在一本书里写了一句话

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

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

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


现在,如果PHP中不允许多重继承,那么多态性是如何被允许的呢?

这两者之间几乎没有什么关系

多重继承在编译时/运行时之后是静态的。多态性是一种仅在运行时才决定调用子类型上的哪个方法的技术


PHP不允许多重继承。

多重继承意味着一个对象从两个不同的父类继承。程序员自行车手既是程序员又是自行车手。当程序员类将其成员数据
最喜爱的\u活动
定义为
黑客活动
时,问题就出现了,而骑自行车的人也有
最喜爱的\u活动
,但它是
骑行活动
。如果你问一位编程自行车手她最喜欢的活动是什么,正确答案是什么


多态性处理对象的行为。它让你告诉一个对象做一些事情,并让结果动作依赖于对象的类,即使你不知道那是什么。所以你遇到了一个人,虽然你不知道是程序员还是厨师,但你告诉她执行你的工作()。如果是程序员,她会写代码,如果是厨师,她会做饭,但你不必特别告诉她写代码()或做饭()

正如Ikke所说,多重遗传与多态性无关

如果我能画一个类图,多重继承如下所示:

Base A    Base B
  ^         ^
   \       /
    \     /
     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不允许多态性…?…因为它是一种弱类型的语言那么为什么教科书会在PHP@SeanJa虽然它不是严格意义上的多态性,但该技术仍然可以应用。但这在弱类型语言中被称为ducktyping。伙计们,请具体和详细说明……你们能不能详细说明一下多态性?。。很有趣。。plsss做到了…这是一个很好的解释,在我看来这是一个误解,非常感谢Xavier……php中多态性的问题是,由于返回类型没有强制执行(它是一种弱类型语言),因此不能保证
speak
实际返回字符串。它可能返回一个数据库对象。(见附件)