美文网首页
java se多态2.0 对象的向上、向下转型

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

作者: 起名字真难难难 | 来源:发表于2020-02-11 12:07 被阅读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;//错误,精度损失

相关文章

网友评论

      本文标题:java se多态2.0 对象的向上、向下转型

      本文链接:https://www.haomeiwen.com/subject/rtztfhtx.html