重载与重写区别
重载(Overload):是一个类中多态性的一种表现,指同一个类中不同的函数使用相同的函数名,但是函数的参数个数或类型不同。可以有不同的返回类型;可以有不同的访问修饰符;可以抛出不同的异常。调用的时候根据函数的参数来区别不同的函数。
重写(Override):是子类对父类函数的重新实现。函数名和参数与父类一样,子类与父类函数体内容不一样。
区别:
重载实现于一个类中,一个类中可以定义多个方法名相同、参数类型和个数不同的方法;
重写实现于子类中,是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变,只修改方法中执行内容。
子类中方法重写注意事项
- 必须保证父子类之间方法的名称相同,参数列表也相同。
@Override:写在方法前面,用来检测是不是有效的正确覆盖重写。 - 子类方法的返回值必须【小于等于】父类方法的返回值范围。
- 子类方法的权限必须【大于等于】父类方法的权限修饰符。
public > protected > ( default) > private