重写(覆盖 override)和重载(overload)
在继承中,子类可以定义和父类相同的名称且参数列表一致的函数,将这种函数称之为函数的重写.
前提:必须要有继承关系
特点
1:当子类重写了父类的函数,那么子类的对象如果调用该函数,一定调用的是重写过后的函数。
可以通过super关键字进行父类的重写函数的调用。
2: 继承可以使得子类增强父类的方法
细节
1: 函数名必须相同
2:参数列表必须相同
3: 子类重写父类的函数的时候,函数的访问权限必须大于等于父类的函数的访问权限否则编译报错
4:子类重写父类的函数的时候,返回值类型必须是父类函数的返回值类型或该返回值类型的子类。不能返回比父类更大的数据类型: 如子类函数返回值类型是Object
重载和重写的不同
1:重载(overload):
1:前提: 所有的重载函数必须在同一个类中
2:特点:函数名相同,参数列表不同,与其他的无关(访问控制符、返回值类型)
3:不同:个数不同 、 顺序不同、 类型不同
2:重写(override):
1:前提: 继承
2:特点:函数名必须相同、参数列表必须相同。子类的返回值类型要等于或者小于父类的返回值
谢谢