关于重载与重写

本文通过示例代码展示了Java中方法重写与重载的区别及应用。通过对不同对象类型的传递,演示了如何实现多态性和方法签名的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始写东西,低调,来点简单的

重写与重载

重写

看一段代码

public class Picture {
	void draw(Object obj) {
		System.out.println("Super");
	}
}
public class Person extends Picture {
	public static void main(String[] args) {
		Object obj = new Object();
		String ob = new String();
		Number obn = new Integer(0);
		
//		Photo pi = new Photo();
		Picture pi = new Photo();
		pi.draw(ob);
		pi.draw(obn);
		pi.draw(obj);
	}
}
class Photo extends Picture {
	public void draw(String obj){
		System.out.println("Sub-s");
	}
	public void draw(Number obj){
		System.out.println("Sub-n");
	}
//	public void draw(Object obj){
//		System.out.println("Sub-o");
//	}
}

OK,看看打印了啥

Super
Super
Super

更改Class Photo

class Photo extends Picture {
	public void draw(String obj){
		System.out.println("Sub-s");
	}
	public void draw(Number obj){
		System.out.println("Sub-n");
	}
	public void draw(Object obj){
		System.out.println("Sub-o");
	}
}

再来看看打印了啥

Sub-o
Sub-o
Sub-o

 

重载

更改Class Picture

public class Picture {
	void draw(Number obj) {
		System.out.println("Super");
	}
}

Person 对象出错,改改就OK了

上面先放一边

看下面

 

public class Person extends Picture {
	public static void main(String[] args) {
		Object obj = new Object();
		String ob = new String();
		Number obn = new Integer(0);
		Float obf = new Float(0.0);
		Byte obd = new Byte("12");
		
		Photo pi = new Photo();
//		Picture pi = new Photo();
		pi.draw(obj);
		pi.draw(obn);
		pi.draw(obf);
		pi.draw(obd);
	}
}
class Photo extends Picture {
	public void draw(String obj){
		System.out.println("Sub-s");
	}
	public void draw(Number obj){
		System.out.println("Sub-n");
	}
	public void draw(Float obj){
		System.out.println("Sub-f");
	}
	public void draw(Object obj){
		System.out.println("Sub-o");
	}
}


看打印

Sub-o
Sub-n
Sub-f
Sub-n

 

OK,结论就不写了


 


 

 




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值