Override&Overload in Java and Python

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
#!/usr/bin/env python
# -*- coding: utf-8 -*-

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))