public static void main(String[] args) { // Upcast Cat cat = new Cat(); Animal animal = cat; animal.sing(); // Downcast Animal a = new Cat(); Cat c = (Cat) a; c.sing(); c.eat(); // 编译错误 // 用父类引用调用父类不存在的方法 // Animal a1 = new Cat(); // a1.eat(); // 编译错误 // 向下类型转换时只能转向指向的对象类型 // Animal a2 = new Cat(); // Cat c2 = (Dog)a2; }