- instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
public class Application { public static void main(String[] args) { //Object > String //Object > Person > Teacher //Object > Person > Student Object object = new Student(); 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 > Student 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 //Object > String //Object > Person > Teacher //String和Person是同级,无联系 //System.out.println(person instanceof String);编译报错 } }
Person.java
public class Person { }
Student.java
public class Student extends Person{ }
Teacher.java
public class Teacher extends Person{ }类型转换
- 父类引用子类指向子类的对象
- 把子类转换为父类,向上转型,直接转换就行
- 把父类转换为子类,向下转型,需要强制转换,丢失一些方法
- 方便方法的调用,减少重复的代码!是代码简洁
Application.java
public class Application { public static void main(String[] args) { //类型之间的转换: 父 子 //高 低 Person obj = new Student(); //强制转换 //student将这个对象转换为Student类型,我们就可以使用Student类型的方法了 Student student = (Student) obj; student.go(); //一步强转 ((Student) obj).go(); //子类转换为父类,可能丢失自己本来的一些方法 Student student1 = new Student(); student1.go(); Person person = student1; } }
Person.java
public class Person { public void run(){ System.out.println("run"); } }
Student.java
public class Student extends Person{ public void go(){ System.out.println("go"); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)