instanceof和类型转换
instanceof
package com.oop;
import com.oop.demo06.Person;
import com.oop.demo06.Student;
import com.oop.demo06.Teacher;
public class Application {
public static void main(String[] args) {
//Object > String
//Object > Person > Teacher
//Object > Person > Student
Object object = new Student();
//System.out.println(X instanceof Y);//编译能不能通过,看XY之间是否存在父子关系
System.out.println(object instanceof Student);//true
System.out.println(object instanceof Person);//true
System.out.println(object instanceof Object);//true
System.out.println(object instanceof Teacher);//false
System.out.println(object instanceof String);//false
System.out.println("==================================");
Person person = new Student();
System.out.println(person instanceof Student);//true
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("==================================");
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(person instanceof String);//编译报错!
}
}
类型转换
Application.java
package com.oop;
import com.oop.demo06.Person;
import com.oop.demo06.Student;
public class Application {
public static void main(String[] args) {
//类型之间的转换:父 子
//高 低
Person obj = new Student();
//obj将这个对象转换为Student类型,我们就可以使用Student类型的方法了!
Student student = (Student) obj;
student.go();//go
//((Student)obj).go();//两句写为一句
//子类转换为父类,可能会丢失自己本来的一些方法
Student student1 = new Student();
student.go();//go
Person person = student;//低转高,直接转
}
}
/*
1.父类引用指向子类的对象
2.子类转换为父类,向上转型;直接转
3.父类转换为子类,向下转型;强制转换 可能会丢失一些子类本来的方法
4.方便方法的调用,减少重复的代码!简洁
*/
Student.java
package com.oop.demo06;
public class Student extends Person {
public void go(){
System.out.println("go");
}
}
Person.java
package com.oop.demo06;
public class Person {
public void run(){
System.out.println("run");
}
}