Java-面向对象13--多态2-instanceof

instanceof关键字

instanceof关键词(类型转换)判断一个对象是什么类型的
比如person类这个父类 Man类和Woman类都继承于她
判断两个类之间有没有联系是不是他的长辈类
例如:
小明是一个男学生 他可能是 男生类 是人类 是灵长类 但是他不可能是女生类

public static void main(String[]args){
        Object obj=new Man();//Object类型指向Man对象
        System.out.println(obj instanceof Man);//obj是Man的祖父类 所以输出为ture
        System.out.println(obj instanceof Person);//obj是Person的父类 obj可能也是个人 输出也为ture
        System.out.println(obj instanceof String);//String是object的下面一个类跟Person是同级别的 所以输出为false
        System.out.println(obj instanceof Woman);//obj不可能又是男人又是女人所以 false

    }

向上转型

类型转换:低向高转可以直接转,高向低转需要强制转换
当低类型想向高类型转可以直接转
例如:
Man类型想转换为Person类型

Man m=new Man();
Person p=m;

当子类转换为父类时,可能会丢失一些自己本来的方法

向下转型

当使用Person类型指向Man对象 man类中的go方法没有被重写时 创建出来的对象无法直接调用 因为他是一个Person类型。当需要调用Man类中的方式时需要向下转型
向下转型与基本类型强转一样

Person oo=new Man();
oo.go();//是无法直接调用的
((Man)oo).go;//向下转型后可以调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值