/*
时间: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();
}
}
/***********************输出结果:
猫叫声……
狗叫声……
*************************/
Java多态举例
最新推荐文章于 2022-05-10 15:05:07 发布