0%
Override & Overload in Java & Python
In Java
Overload |
Override |
参数列表: 必须不同 |
参数列表: 必须一致 |
返回类型: 可以相同, 也可以不同 |
返回类型: 相同, 或为派生类型 |
一种编译时多态例子 |
一种运行时多态的例子 |
重载发生在同一个类 |
重写发生在两个关系为is-A的类中 |
In Python
Overload |
Override |
没有重载(以下列出原因) |
基本与java一致 |
重载要素: 1. 参数类型; 2. 参数数量 |
(但是以下代码可运行, 只是不建议这样写) |
Python可以接受任意类型的参数 |
|
Python可以使用缺省参数 |
|
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
class f: def add(self, a, b): return a + b
class e(f): def add(self, a, b, d): return a + b + d
if __name__ == '__main__': a = e() print(a.add(3, 5, 7))
|