1.重载的定义:

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。体现了面向对象的多态性。

重载的原则:

1、方法名一定要相同。

2、方法的参数一定要不同,包括参数的类型以及个数。

3、方法的个数相同时类型要不同,类型相同时个数要不同。

4、方法的返回类型跟修饰符可以相同也可以不相投。

2.方法重写的定义:

子类继承父类的方法之后,在子类中用相同方法名,返回值,以及相同参数的方法,来覆盖父类中的方法,这叫做方法重写,也叫做方法覆盖。

重写的原则:

1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。

2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。

3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)

4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。

5、父类中的私有方法不能被重写。

重载跟重写的区别:

1、方法覆盖要求参数列表(参数签名)必须一致,而方法重载要求参数列表必须不一致。

2、方法覆盖要求返回类型必须一致,方法重载对此没有要求。

3、方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类中的所有方法(包括从父类中继承而来的方法)

4、方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。

5、父类的一个方法只能被子类覆盖一次,而一个方法可以在所有的类中可以被重载多次。

重写发生在继承关系当中,体现了Java语言的多态性,重载发生在同一个类中,提高了代码的简洁性,Java中因为重载跟重写的存在,使得Java中类的设计更加简洁。