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;//向下转型后可以调用