Override&Overload in Java and Python

What's difference between Override and Overload? In java, or Python.

Override & Overload in Java & Python

In Java

OverloadOverride
参数列表: 必须不同参数列表: 必须一致
返回类型: 可以相同, 也可以不同返回类型: 相同, 或为派生类型
一种编译时多态例子一种运行时多态的例子
重载发生在同一个类重写发生在两个关系为is-A的类中

In Python

OverloadOverride
没有重载(以下列出原因)基本与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))
Licensed under CC BY-NC-SA 4.0
Last updated on Apr 25, 2020 22:28 UTC