Java--instanceof和类型转换

instanceof

判断一个对象是什么类型,通过instanceof关键字来判断。

instanceof关键字可以判断两个类之间是否存在联系(父子关系)。

类型转换

类型之间的转换:基本类型转换 高---------→低 父---------→子

现有两个类,一个为Person类,一个为Student类。

Student类继承Person类

子:Student 父:Person

向上转型

Person s1 = new Student();//Student类转为Person类型

创建了一个Person类型的引用,指向了Student的实例。

类似于将Student实例赋给了Person类型的引用。

将这个对象转换为了Student类型,现在就可以使用Student类型的方法了!

子转父 低转高(向上转型)

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

向下转型

Person p1 = new Person();
Student s1 = (Student)p1;

父转子 高转低(向下转型)需要强制转换

类型转换总结

  1. 父类引用指向子类的对象

  1. 把子类转换为父类,向上转型,不需要强制转换

  1. 把父类转换为子类,向下转型,需要强制转换,子类可能丢失自己的本来的一些方法

  1. 方便方法的调用,减少重复的代码!简洁

抽象:封装,继承,多态