package com.oop.demo06;
public class Application2 {
public static void main(String[] args) {
// Object --> String
// Object --> Person --> Student
// Object --> Person --> Teacher
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 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); 编译不通过
// 高转低需要强制转换 低转高不需要 低转高可能会损失方法
Person person1 = new Student();
person1.say();
//分开写
Student student2 = (Student) person1;
student2.study();
//合上写
((Student)person1).study();
Student student1 = new Student();
//分开写
Person person2 = student1;
person2.say();
// person2.study();
//合上写
((Student)person2).study();
}
}
/*
1、父类引用指向子类的对象
2、把子类转成父类,向上转型;
3、把父类转成子类,向下转型; 需要强制转换
4、方便方法的调用,减少重复的代码
抽象: 封装、继承、多态!
*/
面向对象13:instanceof和类型转换
最新推荐文章于 2025-05-02 10:05:35 发布
本文深入探讨Java中多态的概念,包括父类引用指向子类对象、向上转型与向下转型的具体操作,以及如何利用多态特性提高代码的灵活性和复用性。
813

被折叠的 条评论
为什么被折叠?



