美文网首页
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