问1:Python中有重写和重载的方法吗?
- 先说结论:Python因为语言的特性,没有重载,但是有重写的方法。
问2:什么是重写?
- 1. 先看代码:
class Calculator:
def add(self, a, b):
print("我执行了吗?")
return a + b + 100
def add(self, a, b):
return float(a) + float(b)
cal = Calculator()
print(cal.add(5, 3))
print(cal.add(5.5, 3.3))
- 2. 运行示例:
问3:什么是重载?
-
1.先看代码:
class Animal:
def sound(self):
print("动物叫")
class Dog(Animal):
def sound(self):
print("狗叫")
dog = Dog()
dog.sound()
-
2.运行结果:
总结:
-
重载定义:
- 同一个类中定义了多个同名的方法。
- 在其他语言会根据输入的类型不同,自动找到要执行的那个。
- 而python是动态语言,所以不支持传统意义上的重载。
- (个人理解:重载重载,就是重复载入嘛,这里的重是指“重复”)
-
重写定义:
- 子类重新定义继承自父类的方法。
- Python完全支持重写。
- 当子类中定义了与父类相同名称的方法时,调用子类的该方法会覆盖父类的同名方法,这就是所谓的重写。
- (个人理解:重写就是,老师说你写的不对,重新写一遍呗。就是继承了老师的写法,但自己又重写了一遍。这里的重是指“重新,又一次”
附:重的含义
参考资料:
51博客:https://blog.51cto.com/u_16213422/7210802
https://www.cnblogs.com/mic112/p/15478708.html
标签:Python,print,add,重载,重写,def From: https://www.cnblogs.com/liqi175/p/18078439