28 面向对象编程 instanceof 代码 小结 父类引用指向子类对象
instanceof
代码
// main // Object > Person >Student Object object = new Student(); // 提取公式:XY之间是否存在父子关系 // 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 // ==================== 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);// 编译报错 // ==================== Student stuent = new Student(); System.out.println(stuent instanceof Student);// true System.out.println(stuent instanceof Person);// true System.out.println(stuent instanceof Object);// true // System.out.println(stuent instanceof Teacher);// 编译报错 // System.out.println(stuent instanceof String);// 编译报错 // ---------------------------- // main // 类型之间的转化: 父类 子类 // 子类转换为父类自动就可以转换,子类转换为父类,可能会丢失自己的本来的一些方法! // 高 低 Person obj = new Student(); // obj 将这个对象转换为Student类型,我们就可以使用Student类型的方法了 Student student = (Student)obj; ((Student)obj).go(); public class Teacher extends Person{ } public class Student extends Person{ @Override public void run (){ System.out.println("son"); } } public class Person{ public void run(){ System.out.println("run"); } }
小结
1、父类引用指向子类对象
2、把子类转换为父类,向上转型;
3、把父类转换为子类,向下转型;强制转换
4、方便方法的调用,减少重复的代码!简介
抽象:封装、继承、多态! 抽象类! 接口!
本文来自博客园,作者:千寻简,转载请注明原文链接:https://www.cnblogs.com/opxc/p/15970125.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术