重写(OverRide)与重载(OverlLoad),以及相对应的多态性

重写与重载——意义解释

1.重写(OverRide)是子类在继承父类方法的基础上,由于可能的不同的子类特性而需要改变父类某些方法的时候,在子类中写一个方法名与参数、返回类型完全相同的方法来覆盖掉父类的方法。子类中使用super关键字可以调用到父类的方法。

2.父类中权限值为private的变量、方法不能被子类所继承,自然也就无从重写。

3.重载(OverLoad)是一个类中可以以一个相同的方法名,不同的参数数量或类型来处理不同的数据。通过调用不同的重载方法来进行操作,即是多态性。

4.重载可以发生在一个类中,也可以发生在有继承关系的两个类中。而重写就只能发生在有继承关系的两个类中了。重写要求方法名,参数和返回类型完全一致。

多态性可以分为静态多态性和动态多态性。

静态多态性指的是调用同一个方法时,可以根据输入参数的不同而进行不同的动——即方法的重载;

动态多态性指的是父类和子类的同名方法有不同的实现,即方法的重写。

重写方法的规则

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

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

3、访问修饰符的权限必须大于或等于被重写方法的访问修饰符

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

父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。

 

重载方法的规则:

1、必须具有不同的参数列表;

2、返回类型可以相同可以不同,只要参数列表不同就可以了;

3、可以有不同的访问修饰符;

4、可以抛出不同的异常;

人类不是为了安逸而来到世界。世界可能是赎罪的监狱,可能是甄别的考验,但肯定不是养老的乐园。求战者安,求安者亡。 - 数卷残编
原文地址:https://www.cnblogs.com/jeremykop16/p/5320824.html