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
实际返回字符串。它可能返回一个数据库对象。(见附件)