• 对象的上转型和下转型 (instanceof关键字)


    1.对象的上转型,就是多态的一种写法

    格式:父类名称 对象名 = new 子类名称();

       Animal animal = new Cat();

    含义:右侧创建一个子类对象,把它当作父类来使用

    向上转型一定是安全的,从小范围到大范围;  猫是动物,动物不一定是猫

    类似于:double num = 100

    ps:对象一旦向上转型为父类,就无法调用子类特定内容

    上转型还可以在参数传递的时候隐型发生:例如 匿名类、子类对象

    usbServe(USB usb)

    调用时:

    1.usbServe(new Keybroad());

    2. Keybroad keybroad = new Keybroad();

     usbServe(keybroad);

    2.对象的下转型,其实就是还原的操作

    格式:子类名称 对象名 = (子类名称)父类对象;

    含义:将父类对象还原为本来的子类对象

      Cat cat = (Cat)animal

    类似于:int num = (int)10.0

    ps:必须保证创建的时候就是猫,才能下转型成猫,否则会报错 类转换错误 ClassCastException

    报错的情况类似于:int num = (int)10.5       //精度损失

    下转型时,忘记原来子类是什么时

    格式:对象 instanceof 类名称

    会得到一个 boolean 值,判断前面对象能不能当作后面类型的实例

    例子:

    if (animal instanceof Dog) {

      Dog dog = (Dog) animal;

      dog.watchHouse();

    }

    if (animal instanceof Cat) {

      Cat cat = (Cat) animal;

      cat.catchMouse();

    }

  • 相关阅读:
    了解委托(Delegate)
    C#中事件的一些总结
    Devexpress Xtrareport 并排报表
    Xtrareport 交叉报表
    Xtrareport 多栏报表
    Xtrareport 报表的一些属性及控件
    UI前端开发都是做什么的以及html、css、php、js等究竟是神马关系
    url,href,src之间的区别
    join()的用法
    爬取百度百科
  • 原文地址:https://www.cnblogs.com/aoligei/p/12374127.html
Copyright © 2020-2023  润新知