重载与覆盖
请问一下方法的重载与方法的覆盖二者的作用不同在哪里?(是作用哦!)
请问一下方法的重载与方法的覆盖二者的作用不同在哪里?(是作用哦!)
2018-09-23
首先要清楚重载和覆盖的概念
重载是指在同一个类中,方法名相同,参数列表不同
覆盖是指在子类继承父类时,重新定义父类的某一个方法
作用方面的不同在于:
重载是为了解决在同一个类中,相同功能需要定义不同方法名的问题。例如,当我们需要定义一个求两数之和的方法和一个求三数之和的方法时,如果没有重载,就需要使用两个不同的方法名(如sum1和sum2);但有了重载后,我们就可以使用同一个方法名(如sum),然后根据参数列表的不同来区分(如求两数之和时传入两个参数,求三数之和时传入三个参数)。这样在程序员调用方法时,同一个功能就不需要记忆不同的方法名,只需要控制传入的参数即可。
覆盖是为了解决在子类继承父类时,父类的某个方法不适用于该子类的问题,这时,该子类就可以重新定义该方法来覆盖父类的方法。例如,存在一个people类,类中有一个sleep方法定义了正常人的每天睡眠时间在8~9个小时。然后一个student子类继承自people父类,这时,父类的sleep方法就不适用于子类,它需要重写一个sleep方法定义学生每天的睡眠时间在6~7个小时。
举报