public class PolyTest2 {
public static void main(String[] args) {
/*
Animal a = new Dog();
Dog dog = (Dog) a; //向下转换:它指向什么样的对象就可以转换成什么样的引用)
dog.sing();
*/
/*
Animal b = new Cat();
Cat d = (Dog)b; //错误,dog的引用不能指向cat的对象。
*/
/*
Cat cat = new Cat();
Animal animal = cat; //正确,将子类型转换为父类型.
animal.sing();
*/
/*Animal animal = new Animal();
Cat cat = (Cat)animal; // 错误,将Animal的引用不能转换为Cat.
*/
}
}
class Animal {
public void sing() {
System.out.println("anilma is singing");
}
}
class Dog extends Animal {
public void sing() {
System.out.println("dog is singing");
}
}
class Cat extends Animal {
public void sing() {
System.out.println("cai is singing");
}
}