编程语言
首页 > 编程语言> > Java——面向对象:instanceof操作符

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();
}    

 

标签:instanceof,Woman,Java,子类,转型,面向对象,向下,Man
来源: https://www.cnblogs.com/codexlx/p/13536313.html