override就是重写,不改变函数的输入和输出,重写函数的代码块功能。(Python)
overload就是重载,改变函数的输入和输出。即同一个方法名可以支持多种类型的参数输入.(Java)
举个java的例子:
下面是重载的例子:
public class test0225 {
public static void main(String[] args) {
person p1 = new person();
p1.walk();
p1.walk("zhangsan");
}
}
class person{
void walk(){
System.out.println("正常在走");
}
void walk(String name){
System.out.println(name+":使用拐杖在走");
}
}
打印结果:
正常在走
zhangsan:使用拐杖在走
上面是普通的成员方法的重载。
实际上Python只有重写,没有严格上Java的重载的概念。重写就是子类继承父类之后,重写了父类的方法。
下面给出一个Python的重写的例子:
class Animal():
def run(self):
print("Animal is running")
class Dog(Animal):
def run(self): #重写了父类的方法
print("Dog is running")
dog = Dog()
A = Animal()
A.run()
dog.run()
运行结果:
Animal is running
Dog is running
可以看到子类重写了父类的方法,直接覆盖了父类的run方法。