zoukankan      html  css  js  c++  java
  • Java面向对象——instanceof操作符

    有了对象的多态性以后,内存中实际上是加载了子类中特有的属性和方法,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法,子类特有的属性和方法不能调用。

    在基本数据类型中两种类型之间有自动类型提升和强制类型转换:

     而在对象中就有向下转型

    此时需要用到向下转型:使用强制类型转换符

    Person p1=new Man();    // Man是Person的子类型
    Man m1=(Man)p1;
    m1.earnMoney();    //调用子类中的方法

     使用强转是,可能出现ClassCastException的异常

    为了保证向下转型不出现异常,需要在向下转型之前,先进行Instanceof的判断,true就进行向下转型,否则不进行转型

     instanceof的使用:

    if(p2 instanceof Woman){
        Woman w1=(Woman)p2;
        w1.goShopping();
    }    
  • 相关阅读:
    代码块&继承&final关键字
    Java基础
    我的学习笔记
    CF743C 题解
    洛谷P4180 题解
    洛谷P3402 题解
    洛谷P3919 题解
    Noi.ac#30 题解
    Noi.ac #65题解
    Noi.ac #51题解
  • 原文地址:https://www.cnblogs.com/codexlx/p/13536313.html
Copyright © 2011-2022 走看看