zoukankan      html  css  js  c++  java
  • 对象的向上转型、向下转型

    其实就是多态写法

    1、向上转型,也就是创建一个子类对象,把他当做父类来看待,向上转型一定是安全的,但是一旦向上转型为父类对象,就不能调用子类原本特有的方法

    父类引用指向子类对象

    Parent p = new Children();
    
    Animal a = new Dog();// 这个a不能调用Dog类特有的狗吃屎方法
    

    2、向下转型,其实是一个还原的动作,也就是将父类对象还原为本来的子类对象

    格式:

    子类名称 对象名 = (子类名称)父类对象;
    
    Animal animal = new Dog();// a dog
    Dog dog = (Dog)animal;// 向下转型为原来的狗
    
    // Cat cat = (Cat)animal;
    // 这是错误写法
    //本来人家是狗,向上转型为动物,你要强制把人家先下转型为猫,就会报错(类转换异常java.lang.classcastexpction),应该是一个还原的过程
    

    3.如何知道一个父类的引用原来是什么子类,这样才可以安全的向下转型

    if(animal instanceof Dog) {// 如果animal本来是一只狗(Dog类)
        Dog dog = (Dog)animal;
    }
    if(animal instanceof Cat) {// 如果animal本来是一只猫(Cat类)
        Cat cat = (Cat)animal;
    }
    
  • 相关阅读:
    Bresenham画线算法
    DDA算法
    GL_LINES & GL_LINE_STRIP & GL_LINE_LOOP
    贝塞尔曲线
    弱引用
    Lambert模型
    ShadowVolume
    Phong Shading
    求反射向量
    Vertex Modifier of Surface Shader
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10611874.html
Copyright © 2011-2022 走看看