java中的继承(向上转型)

在学习完继承和多态后,了解到使用继承的一个好处。看下面的例子:

public class British extends People {

	public British(String name) {
		super(name);
	}

}

public class People {
	public String name;

	public People(String name){
		this.name = name;
	}

}
public class American extends People {

	public American(String name) {
		super(name);
	}

}

public class Italian extends People {

	public Italian(String name) {
		super(name);
	}

}
public class Language {

	public void say(People people){
		System.out.println(people.name + " say language");
	}

//	public void ameSay(American a){
//		System.out.println(a.name + " say language");
//	}

//	public void briSay(British b){
//		System.out.println(b.name + " say language");
//	}

//	public void itaSay(Italian i){
//		System.out.println(i.name + " say language");
//	}

}
public class Test {
	public static void main(String[] args) {
		Language l = new Language();
		American a = new American("ami");
		British b = new British("brn");
		Italian i = new Italian("itn");
		l.say(a);
		l.say(b);
		l.say(i);


//		l.ameSay(a);
//		l.briSay(b);
//		l.itaSay(i);
	}

}
运行结果如下:
ami say language
brn say language
itn say language
ami say language
brn say language
itn say language
从以上代码可以看出:在多态的情况下,我们只需要写一个方法say(People people),对象会自动向上转型,如果单独传递一个具体的类型作为参数,那我们就要在Language类中为每一个具体类型写一个say()方法了,如上面的注释。如有需要还要再增加其它类型的方法。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值