重载与重写的区别

Posted anke-z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载与重写的区别相关的知识,希望对你有一定的参考价值。

重载(overload):方法名称一样,参数列表【不一样】。

如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写(override) 概念: 子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。 声明不变,重新实现 特点: 创建的是子类对象,则优先用子类方法。 重写(override):方法的名称一样,参数列表【也一样】。也叫覆盖、复写

注意事项

  1. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样

    @override:写在方法前面,用来检测是不是有效的正确覆盖重写

    这个注释就算不写,只要满足要求,也是正确的覆盖重写

  2. 子方法的返回值必须【小于等于】父方法的返回值范围。

    小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是object的子类

  3. 子类方法的权限必须【大于等于】父类方法的权限修饰符

  4. 小扩展提示:public > protected > (defoult) 什么都不写>private

    备注:(default)不是关键字default,而是什么都不写,留空。 /* 重写(override):方法的名称一样,参数列表【也一样】。也叫覆盖、复写 / public class Fu{ public void method(){ System.out.println("Fu show"); } } ? public class Zi extends Fu{ public void method(){ System.out.println("Zi show"); } } ? public static void main(String[] args){ Zi zi = new Zi(); zi.method();//zi show } ? / 重载(overload):方法名称一样,参数列表【不一样】。 */ public void bark(){ System.out.println("woof"); } public void bark(int num){ for(int i = 0;i<num;i++){ System.out.println("woof"); } } 小结: 重写(override):方法名参数都一样。 重载(overload):方法名相同,参数不同。

以上是关于重载与重写的区别的主要内容,如果未能解决你的问题,请参考以下文章

重载和重写有啥区别

重写与重载之间的区别

重写(覆盖,Override)和重载(Overload)的区别

重载和重写的区别与联系

c++重载(overload)和重写(override)的区别和虚函数

重载与重写的区别