重载和重写

重载和重写

public class Animal{
    // 动物跳
    public void jump(){System.out.println("动物跳");}
    
    // 某某动物跳
    public String jump(String name){return "某某动物跳";}
}

public class Dog{
    // 小狗跳
    public void jump(){System.out.println("小狗跳");}
    
    // 某某小狗跳
    public String jump(String name){return "某某小狗跳";}
}

某某小狗跳方法,

是 小狗跳方法 的重载,

还是 某某动物跳方法 的重写?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2021-06-06 17:35:40

同学你好,1、Dog类并未继承Animal类,所以并不是重写。而重载指的是方法名相同,参数的个数和类型不同。所以在Dog类中public String jump(String name)方法是public void jump()方法的重载。

2、重载和重写的区别,如下:

    1)方法重载要求方法名一致,但参数的类型,个数,顺序不同。

    2)方法重写要求方法名一致,返回值和形参都不能改变。如下所示:

http://img1.sycdn.imooc.com//climg/605d7fcf092de7b811390493.jpg

2、查看是否是重写,同学可以使用@Override注解。如下所示:未出现编译性异常就是重写。

http://img1.sycdn.imooc.com//climg/60bc96db09dc20cb08810319.jpg

祝学习愉快!

  • 提问者 seagull丶7 #1

    Dog类忘记加extends关键字了

    public class Animal{
    // 动物跳
    public void jump(){System.out.println("动物跳");}

    // 某某动物跳
    public String jump(String name){return "某某动物跳";}
    }

    public class Dog extends Animal{
    // 小狗跳
    public void jump(){System.out.println("小狗跳");}

    // 某某小狗跳
    public String jump(String name){return "某某小狗跳";}
    }

    ​这样, 某某小狗跳的方法

    到底是小狗跳方法的重载,

    还是某某动物跳方法的重写?为什么?

    2021-06-06 18:40:31
  • 好帮手慕小尤 回复 提问者 seagull丶7 #2

    同学你好,在Dog类中两个jump()方法,是对Animal类中的方法的重写。如下所示:

    http://img1.sycdn.imooc.com//climg/60bca86f09a4f68b09270333.jpg

    祝学习愉快!

    2021-06-06 18:54:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师