方法重载和方法重写的区别
程序员文章站
2023-11-17 09:25:22
方法重载和方法重写的区别萌新的日常操作1、英文名字的不同重载:Overload重写:Override2、位置不同重载:同一个类中重写:子类和父类之间3、作用不同重载:在一个类里面为一种行为提供多种实现方式并提高可读性重写:父类方法无法满足子类的要求,子类通过方法重写满足要求package cn.tedu.overload;//这个类用来测试 方法的重载现象:在同一类中,方法名相同+参数列表不同!public class Test5_Overload {public...
方法重载和方法重写的区别
萌新的日常操作
1、英文名字的不同
- 重载:Overload
- 重写:Override
2、位置不同
- 重载:同一个类中
- 重写:子类和父类之间
3、作用不同
- 重载:在一个类里面为一种行为提供多种实现方式并提高可读性
- 重写:父类方法无法满足子类的要求,子类通过方法重写满足要求
package cn.tedu.overload;
//这个类用来测试 方法的重载现象:在同一类中,方法名相同+参数列表不同!
public class Test5_Overload {
public static void main(String[] args) {
add(1,2);
add(10,"jack");
add(10,5,"jack");
add("jack",10,5);
}
public static void add(int a,int b) {
System.out.println(a+b); //3
}
public static void add(int a,String b) {
System.out.println(a+b); //10jack
}
public static void add(int a,int b,String c) {
//a+b其中+用来做加法运算,+c是用来做字符串拼接形成大串
System.out.println(a+b+c); //15jack
}
public static void add(String a,int b,int c) {
System.out.println(a+b+c); //jack105
}
}
package cn.tedu.extendsdemo;
//这个类用来测试,继承中成员方法的使用
//1.方法重写的意义:当业务发生改变时,我们不能修改源代码,只能发生继承关系后,修改功能
//2.重写的前提:继承关系+方法声明和父类的一模一样
//3.子类必须 有权限 重写父类的方法,子类权限>=父类权限
public class Test5_UseExtends2 {
public static void main(String[] args) {
Erzi erzi=new Erzi();
erzi.eat();//父类的//重写前是父类的,重写后,用的是子类的,但是父类源代码没有任何影响
erzi.sleep();//父类的
erzi.coding();//子类特有的
}
}
class Baba{//父类
public void eat() {
System.out.println("正在吃肉");
}
public void sleep() {
System.out.println("正在睡觉");
}
}
class Erzi extends Baba{
//3.当父类的原有的功能,发生了改变时,为了不修改源代码,子类可以用方法重写
//重写:继承关系+子类的方法声明和父类的一样
@Override//重写方法的标志,注解
public void eat() {
System.out.println("喜欢吃菜");
}
//1.子类可以使用父类的所有功能,除了private
//2.子类可以使用父类的同时,还可以自己扩展
public void coding() {
System.out.println("正在敲代码");
}
}
注:记忆的时候这三个是比较明显的不同,在叙述的时候可以从这三方面入手,之后再说他的细微差别
4、方法名
- 重载:相同
- 重写:相同
5、参数
- 重载:不同
- 重写:相同
6、修饰符
- 重载:无关
- 重写:大于等于
7、返回值
- 重载:无关
- 重写:小于等于
8、抛出异常
- 重载:无关
- 重写:小于等于
9、重载:是一个类中多态的一种表现
重写:子类与父类之间多态的一种表现
注:4-9的区别记忆法
方法的组成结构
修饰符 返回值 方法名 ([参数]) {方法体;}
例如:
private static void f1(int a, int b, String name) throws Exception {
System.out.println(a+b+name);
}
依照方法结构对应表格可以方便记忆不同()
本文地址:https://blog.csdn.net/ObjectM/article/details/107083547