public static void main(String[] args) {
// TODO Auto-generated method stub
// Animal obj1 = new Animal();
// Animal obj2 = new Dog();
// Animal obj3 = new Cat();
// //Dog obj3 = new Animal();出错,不能用子类的引用指向父类的对象
// obj1.eat();
// obj2.eat();
// obj3.eat();
//obj2.bite();//出错,父类引用指向的子类对象只能调用重写和继承的方法,不能引用子类独有的方法
Dog dog = new Dog();
Animal animal = dog;//自动类型提升 向上类型转换
Dog dog2 = (Dog)animal;
Cat cat = new Cat();
if(animal instanceof Cat){
Cat cat2 = (Cat)animal;//因为最初创建的空间为Dog类型的空,故无法在其中实现Cat类型的转换
}else{
System.out.println("无法进行类型转换");
}
}
但是我在老师得代码中又新建了一个Cat类型的空间,为什么还是无法进行转换
animal 没有指向 cat。。所以 animal instanceof Cat 还是 false,所以无法进行转换
老师只是讲了一种避免类型转换的安全性问题,的判断