OM *_*ity 4 php oop polymorphism multiple-inheritance
多重继承和多态性有什么区别?
在一本书中,我用红线说道
在类级别不支持多重继承.这意味着您不能一次扩展多个类.
这与多态性的概念相矛盾,在同一本书中描述
多态性是从特定基类创建多个对象的过程
现在,如果PHP中不允许多重继承,那么如何允许多态性?
Xav*_* Ho 19
就像Ikke所说,多重继承与多态性无关.
如果我可以绘制类图,则多重继承如下所示:
Base A Base B
^ ^
\ /
\ /
Child
Run Code Online (Sandbox Code Playgroud)
因此,该类Child将继承两个类的属性和行为.Java和PHP等许多语言都不允许这样,但Python确实如此.
另一方面,多态性就是你可以抽象出一种专业化.首先,类图:
Animal
^ ^
/ \
/ \
Cat Dog
Run Code Online (Sandbox Code Playgroud)
你可以做以下事情:
// Assuming we have a pack of animals
// This is Java
for (Animal pet : pack)
pet.speak();
Run Code Online (Sandbox Code Playgroud)
pet根据实施情况,每个人都会说不同的事情.