package cn.sxt.oo2;
/*
* 测试多态
* @author php
* */
public class TestPolym {
public static void main(String[] args) {
Animal a = new Animal();
animalCry(a);
Animal d = new Dog(); //自动向上转型(本来是Dog,现在给转成Animal了)
animalCry(d);
Dog d2 = (Dog)d; //强制向下转型(把一个Animal转为Dog)
d2.seeDoor();
// d.seeDoor();
//这样不能调用,因为编译器认为d是Animal,它只认Animal里面的方法,所以要强制转回来
}
static void animalCry(Animal a) {
a.shout();
}
}
class Animal {
public void shout() {
System.out.println("叫了一声!");
}
}
class Dog extends Animal {
public void shout() {
System.out.println("旺旺旺!");
}
public void seeDoor() {
System.out.println("看门中....");
}
}
class Cat extends Animal {
public void shout() {
System.out.println("喵喵喵喵!");
}
}
java-对象转型
最新推荐文章于 2024-09-15 09:47:04 发布