Java 重载重写(OverrideOverload)

Posted 王睿丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 重载重写(OverrideOverload)相关的知识,希望对你有一定的参考价值。

重写

/** 
 * @author wangrui
 * @time 2021-10-29
 */
public class Main1 {
	public static void main(String[] args) {
		//创建People 对象
		People p1 = new People();
		//向上转型
		People p2 = new WangRui();
		p1.teZheng();
		System.out.println("---------------------------");
		p2.teZheng();
		System.out.println("---------------------------");
		//p2.eat();	报错,因为p2的引用类型People没有eat方法
		WangRui wr = new WangRui();
		wr.eat();
	}
}

class People{
	//特征
	public void teZheng() {
		System.out.println("我有一个鼻子,两个眼睛");
	}
}

class WangRui extends People{
	//重写父类特征
	@Override
	public void teZheng() {
		System.out.println("我很帅,并且很能吃");
	}
	//新增子类特性,比如王睿喜欢吃的东西
	public void eat() {
		System.out.println("我喜欢吃薯条");
	}
}

运行结果:

我有一个鼻子,两个眼睛
---------------------------
我很帅,并且很能吃
---------------------------
我喜欢吃薯条

方法重载

/**
 * @author wangrui
 * @time 2021-10-29
 */
public class Main3 {
	
	public void plan(String breakfast) {
		System.out.println("早餐:我想喝"+breakfast);
	}
	
	public void  plan(String breakfast,String exercise) {
		System.out.println("午饭:我想吃"+breakfast+" ---- 运动:我想去" + exercise);
	}
	
	public void  plan(int dinner) {
		System.out.println("晚饭:我要吃"+dinner+"碗饭");
	}
	
	public static void main(String[] args) {
		Main3 wr = new Main3();
		wr.plan(4);
		wr.plan("牛奶");
		wr.plan("剁椒鱼头","游泳");
	}
}

运行结果

晚饭:我要吃4碗饭
早餐:我想喝牛奶
午饭:我想吃剁椒鱼头 ---- 运动:我想去游泳

super 实现子类调用父类的重写方法

/**
 * @author wangrui
 * @time 2021-10-29
 */
public class Main2 {
	public static void main(String[] args) {
		People2 p1 = new People2();
		WangRui2 p2 = new WangRui2();
		p1.teZheng();
		System.out.println("---------------------------");
		p2.teZheng();
	}
}

class People2{
	public void teZheng() {
		System.out.println("我有一个鼻子,两个眼睛");
	}
}

class WangRui2 extends People{
	//重写父类方法
	@Override
	public void teZheng() {
		//在子类中调用父类的被重写方法,意思是调用父类的teZheng()
		super.teZheng();
		System.out.println("我很帅,并且很能吃");
	}
}

运行结果

我有一个鼻子,两个眼睛
---------------------------
我有一个鼻子,两个眼睛
我很帅,并且很能吃

以上是关于Java 重载重写(OverrideOverload)的主要内容,如果未能解决你的问题,请参考以下文章

java中重载和重写的区别是啥?

java 重载和重写的区别

java中重载,继承,重写和多态的区别

java 重载和重写的区别

重写和重载的区别

关于重写和重载