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;
    }
    
  • 相关阅读:
    Kafka 核心 API ==> AdminClient
    Kafka ==> 简介
    设计模式之 ==> 代理设计模式
    设计模式之 ==> 工厂设计模式
    设计模式之 ==> 模板设计模式
    设计模式之 ==> 单例模式
    Linux目录【持续更新中】
    Python 目录【持续更新中】
    kafka-eagle部署
    ES集群部署
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10611874.html
Copyright © 2011-2022 走看看