【Java 面试合集】重写以及重载有什么区别能简单说说嘛

重写以及重载有什么区别能简单说说嘛

前述

这是一道非常基础的面试题,我们在回答的过程中一定要逐一横向比较。

从方法的 修饰符返回值方法名含义参数等方面进行逐一分析来比较不同。

话不多话,看下面的图文。

在这里插入图片描述

1. 重载实例

public class Test001 {
    public void run(int number) {
        System.out.println("run(int number)");
    }

    public void run(String str) {
        System.out.println("run(String str)");
    }

    public int run(int number, String str) {
        System.out.println("run(int number, String str)");
        return 0;
    }

    private String run(String str, int number) {
        System.out.println("run(String str, int number)");
        return "";
    }
}

上述的实例实现了方法重载,方法重载的特征是:同一个类中,方法签名相同,参数列表不同

参数列表代之指:类型不同, 个数不同, 顺序不同

所以重载只跟函数签名 以及参数列表有关系,跟其他无关。

2. 重写实例

父类代码

public class Parent extends SuperP{
    public Parent run(int number) {
        System.out.println("run(int number)");
        return new Parent();
    }
}

子类代码

public class Child extends Parent {
    public void eat(String str) {
        System.out.println("eat(String str)");
    }

    @Override
    public Parent run(int number) {
        return new Child();
    }
}

上述示例中 子类重写了父类的run方法。

既然是重写的话,那么函数签名以及参数列表是必须相同的。
但是针对于返回值,父类的返回值一定是大于等于子类的,这个符合了多态的特征。可以理解为Person p = new Child()

这里的大于呢,其实就是继承关系,就是父类的返回值一定是子类返回值的本身或是父类才行。

3. 应用实例

  • 重载

重载的意义在于 当方法功能相似,但是参数不同,这个时候我们就可以使用重载

  • 重写

重写一定发生在继承关系中,也就是子类可以重写父类的方法。当父类的方法不满足于子类的时候,子类就可以重写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值