您的位置:首页 > 编程语言 > Java开发

Java之动态绑定(多态)

2016-12-13 10:37 369 查看
动态绑定是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用相应的方法

动态绑定的三个条件:

1.要有继承

2.要有方法重写

3.要有父类引用指向子类对象

class Animal {
private String name;
Animal(String name) {
this.name = name;
}

public void enjoy() {
System.out.println("animalshout...");
}

}

class Cat extends Animal {
private String eyesColor;
Cat(String n,String c) {
super(n);
eyesColor = c;
}

public void enjoy() {
System.out.println("catshoult...");
}
}

class Dog extends Animal {
private String furColor;
Dog(String n,String c) {
super(n);
furColor = c;
}
public void enjoy() {
System.out.println("dogshoult...");
}
}

class Lady {
private String name;
private Animal pet;
Lady(String name, Animal pet) {
this.name = name;
this.pet = pet;
}
public void myPetEnjoy() {
pet.enjoy();
}
}

public class TestTai {
public static void main(String[] args) {
Cat c = new Cat("catname", "blue");
Dog d = new Dog("d ogname", "black");

Lady l1 = new Lady("l1", c);
Lady l2 = new Lady("l2", d);

l1.myPetEnjoy();
l2.myPetEnjoy();

}
}


l1调用的是pet的方法,本来是animal引用,但是实际上是用的是cat对象,那就绑定到cat对象重写的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: