instanceof和类型转换
instanceof和类型转换
instanceof,判断一个对象是什么类型,是否存在父子关系
代码实现:
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);//能不能编译通过!看是否为父子关系
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(student instanceof String); // 编译报错
}
}
类型转换
抽象:编程思想!持续地学习!自会茅塞顿开!多实践,多测试大脑中的想法!实践出真知~
/*
1.父类引用指向子类的对象
2.把子类转换为父类,向上转型;引用时无法使用子类的独特方法
3.把父类转换为子类,向下转型:强制转换。会开辟新的空间
4.方便方法的调用,减少重复的代码!简洁
j
封装、继承、多态!抽象类、接口
抽象:编程思想!持续的学习,茅塞顿开!多实践,多测试大脑中的想法!实践出真知~
*/
代码:
public class Application {
public static void main(String[] args) {
//类型之间的转化: 基本类型转换 高低64 32 16 8
//父 子
//高 低
Person obj = new Student();
//student将这个对象转换为Student类型,我们就可以使用Student类型的方法了!
Student student = (Student) obj;
student.go();//本质上还是Person
//又或者
((Student)obj).go();
//高转低 自动转
//子类转换为父类,可能丢失自己的本来的一些方法!
Student student1 = new Student();
student1.go();
Person person = student1;
}