网站建设 重点,深圳手机网站建设,代码生成器免费,软文写作模板重写以及重载有什么区别能简单说说嘛
前述
这是一道非常基础的面试题#xff0c;我们在回答的过程中一定要逐一横向比较。
从方法的 修饰符#xff0c;返回值#xff0c;方法名#xff0c;含义#xff0c;参数等方面进行逐一分析来比较不同。
话不多话#xff0c;看下…重写以及重载有什么区别能简单说说嘛
前述
这是一道非常基础的面试题我们在回答的过程中一定要逐一横向比较。
从方法的 修饰符返回值方法名含义参数等方面进行逐一分析来比较不同。
话不多话看下面的图文。 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. 应用实例
重载
重载的意义在于 当方法功能相似但是参数不同这个时候我们就可以使用重载
重写
重写一定发生在继承关系中也就是子类可以重写父类的方法。当父类的方法不满足于子类的时候子类就可以重写。