区分:Java中的重载与重写

重载(Overload)

同一个类中多个方法有相同的方法名,但是参数列表不同(不考虑修饰符和返回值类型),可以调用同一个方法,传入不同参数实现相似的功能,调用时根据函数参数类型和个数进行调用。
两同:
①在同一类中
②方法名相同
一不同:
参数列表不同

例:

public class OverLoadTest {
	public static void main(String[] args) {
		OverLoadTest overLoadTest = new OverLoadTest();
		overLoadTest.call();
		overLoadTest.call(10);
		overLoadTest.call(10, "男");
	}
	
	public void call() {
		System.out.println("我是小明");
	}
	
	public void call(int age) {
		System.out.println("我是小明,我"+ age +"岁了");
	}
	
	public void call(int age, String sex) {
		System.out.println("我是小明,性别"+ sex +"我"+ age +"岁了");
	}
}

运行结果:
在这里插入图片描述

重写(Override/Overwrite)

子类继承父类后,父类的方法功能满足不了子类的需求,子类有必要对继承的父类方法进行方法覆盖(注:父类的构造方法以及private修饰的私有方法不能被继承,也就不能被覆盖)在继承类中对父类的函数进行重新实现,方法名和参数列表相同,只是实现体不一样。
两同:
①方法名相同
②参数列表相同
两小:
①子类返回值类型小于等于父类返回值类型(注:返回值为基本数据类型时,必须相等)
②子类抛出的异常小于等于父类抛出的异常
一大:
子类访问控制修饰符大于等于父类访问控制修饰符

例:

//父类
public class Person {
	private int age;
	private String sex;
	
	public void eat() {
		System.out.println("吃饭");
	}
	
	public void work() {
		System.out.println("打工");
	}
}

//子类
public class Student extends Person{
	String major;

	public void work() {
		System.out.println("学习");
	}
	
}

//main
public class OverWriteTest {
	public static void main(String[] args) {
		Student student = new Student();
		student.work();
	}
}

运行结果为:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值