向上造型和多态
造型的意思就是把一个类型的对象付给另一个类型的变量这个过程叫做造型
造型cast
~子类对象可以赋值给父类的变量
~注意!java中不存在对象对对象的赋值
~父类的对象不能赋值给子类的变量!
Vechicle v;
Car c =new Car();
v= c;//可以
c = v; 编译错误!
~可以用造型:
c = (Car) v;
(只有当v这个变量实际管理的是Car才行
造型
~用括号围起类型放在值的前面
~对象本身并没有发生任何变化
~所以不是"类型转换"
~运行时有机制来检查这样的转化是否合理
~ClassCastException
向上造型
~拿一个子类的对象,当做父类的对象来用
~向上造型是默认的,不需要运算符
~向上造型总是安全的
函数调用的绑定
~当通过对象变量调用函数的时候,调用哪个函数这件事叫做绑定
~静态绑定:根据变量的声明类型来决定
~动态绑定:根据变量的动态类型来决定
~在成员函数中调用其他成员函数也是通过this这个对象变量来调用的
覆盖override
~子类和父类中存在名称和参数表完全相同的函数,这一对函数构成覆盖关系
~通过父类的变量调用存在覆盖关系的函数时,会调用变量当时所管理的对象所属的类的函数
所谓多态指的是通过一个变量去调用一个函数
多态性是对象多种表现形式的体现。
现实中,比如我们按下 F1 键这个动作:
如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
如果当前在 Word 下弹出的就是 Word 帮助;
在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果。
多态的优点
1. 消除类型之间的耦合关系
2. 可替换性
3. 可扩充性
4. 接口性
5. 灵活性
6. 简化性
多态存在的三个必要条件
继承
重写
父类引用指向子类对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)