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();
    }    
  • 相关阅读:
    java-初始化和清理
    java-字符串
    java-I/O流
    java-反射和代理
    java-执行流程控制语句
    java-访问控制修饰符
    java-异常
    java-注解
    [ Java学习 ] 一道Java好题的详细题解 001
    [ Java学习 ] 查阅资料整理 002
  • 原文地址:https://www.cnblogs.com/codexlx/p/13536313.html
Copyright © 2011-2022 走看看