4.6Java对象转型(casting)
本章内容
向上转型
向下转型
向上转型
定义:
- 
父类引用指向子类对象,这个过程称之为向上转型 
- 
属于自动转型类型 
向下转型
特点:
- 
向上转型后的父类引用变量只能调用它的编译类型的方法,不能调用它运行时类型的方法。这个时候需要强制类型转换,称之为向下转型 
对象的转型:
public class TestPolym {
    public static void main(String[] args) {
        //创建Animal对象
        Animal a = new Animal();
        animalCry(a );
    }
    //为了方便调用写一个方法
    static void animalCry(Animal a){
        a.shout();
        /*
        a的类型是Animal
        Dog是子类对象,子类对象给了父类引用
        父类的类型指向了子类的对象,这时候就发生了多态
        传的对象不一样,所以调用的shout方法也不一样,根据实参确定
        存在目的为了少些重载
        下面加子类可以方便调用
         */
        Dog d = new Dog(); //把Dog d 改为Animal d没有问题,到调用方法的时候还是运行Dog的方法
        /*
        在这个为止编译器认为这个类型是Animal不是Dog
        所以只能用Animal类下的方法而不能用Dog下的方法
         */
//        animalCry(d);
        animalCry(new Cat());
        Dog d2 = (Dog)d;
        /*
        编译器认为这个d2经过强制类型转换转成了Dog
        所以可以用Dog类下的方法
         */
    }
}
    It's a lonely road!!!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号