欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

方法重载和方法重写的区别

程序员文章站 2023-12-04 17:53:40
方法重载和方法重写的区别萌新的日常操作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