Java多态举例

/*
	时间:2014年12月7日16:30:46
	功能:多态(Polymorphism),又叫动态绑定【根据实际类型调用(而非引用类型)】
	好处:可扩展性达到最好
*/

class Animal {
	private String name;
	Animal(String name) {
		this.name = name;	
	}
	
	public void enjoy() {
		System.out.println("叫声……");
	}
}

class Cat extends Animal {
//		private String name; //为啥总爱写这句呢?
	private String eyeColor;
	Cat(String n, String c) {
		super(n);	
		eyeColor = c;
	}
	public void enjoy() {
		System.out.println("猫叫声……");	
	}
}

class Dog extends Animal {
//	private String name; //同 Cat 类
	private String furColor;
	Dog(String n, String c) {
		super(n);	
		furColor = c;
	}
	public void enjoy() {
		System.out.println("狗叫声……");
	}
}
/*
class Bird extends Animal {
	Bird() {
		super("bird");
	}
	
	public void enjoy() {
			System.out.println("鸟叫声……");
	}
}
*/

class Lady {
	private String name;
	private Animal pet;	//pet 的类型是 Animal类(引用类型)
	Lady(String name, Animal pet) {
		this.name = name;
		this.pet = pet;	
	}
	public void myPetEnjoy() {
		pet.enjoy();	
	}
}

public class TestPolymorphism {		//画内存分配
	public static void main(String[] args) {
			Cat c = new Cat("BigYellow", "yellow");
			Dog d = new Dog("Awang", "black");
//			Bird b = new Bird();
		
			Lady l1 = new Lady("L1", c);	//根据实际类型调用(而非引用类型)
			Lady l2 = new Lady("L2", d);
//			Lady l3 = new Lady("L3", b);
			
			l1.myPetEnjoy();
			l2.myPetEnjoy();
//			l3.myPetEnjoy();
	}	
}


/***********************输出结果:

猫叫声……
狗叫声……

*************************/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值