java入门-----对象转型
对象转型
1.向上转型:子类类型 转 父类类型
可以调用父类非私有化属性
可以调用父类非私有化方法
可以调用子类重写父类的方法
不可以调用子类属性和方法
1.动物类
public class Animal {
public void eat() {
}
public void shout() {
}
}
2.猫
public class Cat extends Animal{
public void shout(){
System.out.println("喵喵喵~~~");
}
}
3.狗
public class Dog extends Animal{
public void eat(){
System.out.println("啃骨头~~~");
}
}
public class Test01 {
public static void main(String[] args) {
Animal an = new Dog();//向上转型
an.eat();
}
}
啃骨头~~~
注意:向上转型就是多态
多态的缺点:不可以调用子类自己的属性和方法
2.向下转型:父类类型 转 子类类型
注意:
1.向下转型转不好就会出现ClassCastException - 类型转换异常
2.向下转型一定要使用instanceof判断
public class Test01 {
public static void main(String[] args) {
Animal an = new Dog();//向上转型
if(an instanceof Cat){//判断an引用指向的对象是否是Cat类型
Cat cat = (Cat) an;//向下转型
cat.shout();
}else if(an instanceof Dog){//判断an引用指向的对象是否是Dog类型
Dog dog = (Dog) an;//向下转型
dog.eat();
}
}
}
啃骨头~~~