javaSE学习-面向对象4-重写和重载

重写

重写,是子类有父类的情况下,用于子类对父类的方法进行重写

重写是子类对父类的非私有方法重新编写方法内容,方法的返回值和形参都与父类的方法相同

如果在重写过程中,还需要引用父类中的方法功能,可以使用 super 引用父类方法

重写规则

@override,重写,也就是覆盖

  • 重写方法的方法名和方法参数列表必须与被重写的方法完全相同
  • 访问修饰符的访问权限必须大于被重写方法的访问修饰符权限,但是不能是 private
  • 重写方法的返回值必须与被重写方法返回值相同
  • 重写方法若是抛出异常,那么异常必须是与被重写方法抛出的异常一致或是异常的子类
  • 声明为final的方法不能被重写;声明为static的方法不能被重写,但是能够被再次声明

重载

重载是指同一个类或子类对父类的都可以

重载,指两个方法的方法名称相同,但是方法参数列表不同

重载规则

overload,一般是用于同一个类中

  • 重载的方法的方法名称必须相同,而参数列表不能相同
  • 不同的参数列表,可以是参数的个数不同,参数的类型不同,或参数的顺序不同
  • 方法的返回值没有要求,可以相同,也可以不同
  • 方法的访问修饰符可以不同,也可以相同
  • 方法抛出的异常也可以不同

重写和重载的区别

区别 重载 重写
参数列表 必须不同 都可以
返回值 都可以 必须相同
异常 都可以 必须相同或是子类
访问修饰符 都可以 必须相同或是权限更大