Java 重写(Override)与重载(Overload)的区别

重写(Override)与重载(Overload)

相同点

方法名都是一样的

重写(Override)

关系到两个类:子类,父类
父类中有一个方法不合你的心意的时候,你可以重新编写这个方法
但是!
只能重写这个方法的过程!返回值和形参都不能变!

比如说

这里有一个

public class Father {

	public void Test01(){
	
		System.out.println("瞎写的");
	
	}


}

我觉得这个类的方法写得不行
我建了一个类继承他,这样他就是我的父类了,我就能重写他的方法

public class Son extends Father{
	
	public void Test01(){
	
		System.out.println("不能瞎写");
	
	}

}

重载(Overload)

一个类下定义了多个方法名相同,而他们的参数不同
调用的时候,根据所提供的的参数类型,来决定调用方法是哪一个
比如说,我这里有一个

public class School {

	public void Student(){
	
		System.out.println("我叫张三");
	
	}
	
	public void Student(int num){
	
		System.out.println("我叫李四");
	
	}


}

好比一个学校,学校里都是学生,那你要怎么找到某一个学生呢,那就通过甲方传过来的要求来找
像上面这段代码,当我调用方法没有参数的时候,则调用一个Student()
而当我调用方法有参数的时候,则使用第二个Student(int num)

这就是方法的重载

有一张图我觉得很形象,在下面贴出来看一下吧

image

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...