当前位置: 移动技术网 > IT编程>开发语言>Java > 方法重载和方法重写的区别

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

2020年07月03日  | 移动技术网IT编程  | 我要评论

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

萌新的日常操作

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网