基础17instanceof用法和类的转换
instanceof用法和类的转换
instanceof作用:判断一个引用类型变量所指向的对象是否是一个类
四个代码一起食用
package com.oop.demo07; public class Application { public static void main(String[] args) { //Object > String //Object > Person > Teacher //Object > Person > Student Object obj = new Student(); System.out.println(obj instanceof Student);//true System.out.println(obj instanceof Person);//true System.out.println(obj instanceof Object);//true System.out.println(obj instanceof Teacher);//false System.out.println(obj instanceof String);//false System.out.println("========================================"); Person per = new Student(); System.out.println(per instanceof Student);//true System.out.println(per instanceof Person);//true System.out.println(per instanceof Object);//true System.out.println(per instanceof Teacher);//false //System.out.println(per instanceof String);//不可编译 Person 与String 没有血缘关系 //编译成功与否根据左侧的类型,看他们是不是有血缘关系。右侧new的类型决定true和false System.out.println("========================================="); Student student = new Student(); System.out.println(student instanceof Student);//true System.out.println(student instanceof Person);//true System.out.println(student instanceof Object);//true //System.out.println(student instanceof Teacher); //System.out.println(student instanceof String); Person person = new Person(); System.out.println(person instanceof Student);//false System.out.println(person instanceof Person);//true System.out.println(person instanceof Object);//true System.out.println(person instanceof Teacher);//false //System.out.println(person instanceof String); System.out.println("======================================"); /* 1, 父类引用指向子类的对象 2,把子类转换成父类,向上转型 3,把父类转换成子类,向下转型:强制转换 4,方便方法的调用,减少重复的代码!简洁 核心思想:抽象 封装、继承、多态 抽象类 接口 */ //类型之间的转换:父 子 //高 低 Person per1 = new Student(); //Student 将这个对象转换为Student类型,我们就可以用Student类型里面的方法了! ((Student) per1).go(); //子类转换成父类,可能丢失自己的本来的一些方法 Student student1 = new Student(); student1.go(); Person per2 = student1; //per.go();方法丢失 } }
接下
package com.oop.demo07; public class Person { public void run(){ System.out.println("run"); } }
接下
package com.oop.demo07; public class Student extends Person { public void go(){ System.out.println("go"); } }
接下
package com.oop.demo07; public class Teacher extends Person { }