【Java 面试合集】重写以及重载有什么区别能简单说说嘛
创始人
2024-05-25 01:18:09

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

前述

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

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

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

在这里插入图片描述

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)");}@Overridepublic Parent run(int number) {return new Child();}
}

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

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

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

3. 应用实例

  • 重载

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

  • 重写

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

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...