java se多态2.0 对象的向上、向下转型

2020-02-11  本文已影响0人  起名字真难难难

向上转型,从小范围转向大范围

右边创建一个子类,当做父类看

Animal animal=new Cat();

类似于强制变换

double num=100;//int->double

缺点:一旦向上转型为父类,无法调用子类特有的方法

向下转型,大范围还原成小范围

降父类对象还原成原来的子类对象

Cat cat=(Cat) animal;

注:必须保证对象创建的时候就是“猫”,如果本来是猫,向下转换成了狗,会发生转换异常

Animal animal=new Cat();
        animal.eat();
        //animal.sleep(); 调用不了
        Cat cat=(Cat) animal;
        cat.eat();
        cat.sleep();
        System.out.println("==================");
        //原本是猫,转换成狗就会发生转换异常
        Dog dog=(Dog)animal;
        dog.eat();
转换异常

类似于从大到小的强制转换

int num=(int)10.0;
int num=(int)10.5;//错误,精度损失
上一篇 下一篇

猜你喜欢

热点阅读