重载 vs 重写

重载

作用

方法重载是让类以一种统一的方式处理不同类型的一种手段,调用方法时通过传递不同个数和类型的参数来决定具体使用哪个方法

特点

重载发生在同一个类中,方法名相同,参数列表不同 (包括:参数个数、类型、顺序)

下面给出一些重载的例子:✅

注意:方法重载与返回值无关!若只是返回值不同,其他都相同 (方法名相同,参数列表相同),不属于重载,反而会编译不通过

因为对于一个有返回值的方法,我们可以选择不要它的返回值,这样就会产生歧义,如下面所示:❌

重点

重写

作用

方法重写发生在继承关系的基础之上,子类即可以隐藏和访问父类的方法,也可以重写父类的方法,方便了子类对父类方法的扩展

特点

重写发生在继承关系的基础之上,重写后的方法与原方法有完全相同的返回值类型,方法名,参数列表,唯一不同的只有方法的实现

重点

 

总结

 重载 (Overload)重写 (Override)
发生位置同一个类中继承关系中
方法名称相同相同
参数列表必须修改相同
返回类型可以修改相同
异常可以修改不能超过父类的范畴
访问修饰符无要求不能比父类的低