Python中的多态与Java、C#、C++等静态类型语言的主要区别体现在以下几个方面:
1. 类型系统与多态实现方式
-
Python(动态类型,鸭子类型)
多态基于对象的行为(方法的存在性),而非继承或接口。只要对象实现了所需方法(无论继承关系),即可视为多态。例如:class Dog: def speak(self): return "Woof!" class Robot: def speak(self): return "Beep!" def make_sound(obj): print(obj.speak()) make_sound(Dog()) # 输出 "Woof!" make_sound(Robot()) # 输出 "Beep!"
无需继承同一父类或接口。
-
Java/C#/C++(静态类型,显式继承)
多态需通过继承或接口明确类型关系。例如Java中:interface Animal { String speak(); } class Dog implements Animal { public String speak