instanceof 关键字
- instanceof 关键字用于判断一个对象是什么类型及它与其它对象的联系
- x instanceof y
- 总结:编译看左边有没有父子关系,运行看右边有没有父子关系
示例代码如下:
package com.oop;
import com.oop.demo09.Person;
import com.oop.demo09.Student;
import com.oop.demo09.Teacher;
public class Application {
public static void main(String[] args) {
Object object = new Student();
System.out.println(object instanceof Student);
System.out.println(object instanceof Person);
System.out.println(object instanceof Object);
System.out.println(object instanceof Teacher);
System.out.println(object instanceof String);
System.out.println("=================================");
Person person = new Student();
System.out.println(person instanceof Student);
System.out.println(person instanceof Person);
System.out.println(person instanceof Object);
System.out.println(person instanceof Teacher);
System.out.println("===========================");
Student student = new Student();
System.out.println(student instanceof Student);
System.out.println(student instanceof Person);
System.out.println(student instanceof Object);
}
}
类型转换
- 父类转为子类即为高转低
- 从低类型可以直接转为高类型,但从高类型必须强制转换为低类型
示例代码如下:
package com.oop;
import com.oop.demo09.Person;
import com.oop.demo09.Student;
import com.oop.demo09.Teacher;
public class Application {
public static void main(String[] args) {
Person a =new Student();
Student student =(Student)a;
student.go();
((Student)a).go();
Person person =student;
}
}
package com.oop.demo09;
public class Student extends Person{
public void go(){
System.out.println("go");
}
}
package com.oop.demo09;
public class Person {
public void run(){
System.out.println("run");
}
}