多态
1.同一个方法可以根据发送对象的不同而采用多种不同的行为方式
2.一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类、有关系的类)
可以通过父类去new子类
EX: Student s1 = new Student(); (子类) 能调用自己的方法、或者继承父类的方法
Person s2 = new Student(); (父类) 不能调用子类独有的方法,但是可以指向子类(new Student)
Object s3=new Student();
如果子类重写了父类的方法,s1、s2调用这个方法,会执行子类的方法。
注意事项:1.是方法的多态,属性没有
2.父类和子类 否则类型转换异常(ClassCastException)
3.存在条件: 继承关系,方法需要重写(注意不能重写的方法),父类引用指向子类对象( Father F1= new son(); )
引用类型转换 instanceof 查看X Y 是否有父子类关系
sop(X instanceof Y);
如何让父类引用类型去使用子类的方法呢?(父类转子类)
ex: 假设student中有一个名为go的方法
高 低
Person p1= new student();
Student p1= (Student)p1; /*强制转换后,就可以使用
==== ( (student)p1).go();
p1.go(); */
如果是子类转换父类,可能丢失自己本来的一些方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!