Java学习笔记——overload(重载)和override(重写)的区别

方法的重载和重写体现了方法的多态,但他们存在一些不同之处:

overload方法重载

在同一个类中,我们可以定义多个同名的方法,但要求他们的形参列表不一致
注意:不能通过返回类型,访问修饰符或抛出的异常进行重载。

void show(int a,char b,double c){}
void show(int x,char y,double z){}//不是重载
int show(int a,double c,char b){}//是重载
void show(int a,double c,char b){}//是重载
boolean show(int c,char b){}//是重载
void show(double c){}//是重载
double show(int x,char y, double z){}//不是重载
void shows(){}//不是重载

override方法重写

子类可以拥有和父类同名且形参列表一致的方法,这种特性叫做重写,重写有以下规则:

  1. 子类的方法的形参列表,方法名称,要和父类方法的形参列表,方法名称完全一样。
  2. 子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类,比如父类返回类型是Object,子类方法返回类型可以是String
  3. 子类方法不能缩小父类方法的访问权限( public > protected > 默认>private)
  4. 重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常

总结

Java学习笔记——overload(重载)和override(重写)的区别_第1张图片
图引用自韩顺平循序渐进学Java

你可能感兴趣的:(java,学习,笔记)