java 多态
2022/9/13 14:16:45
本文主要是介绍java 多态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
语法:赋值语句为子类对象赋值给父类数据类型
多态:new 子类对象 赋值给到 父类的数据类型中
重点:虚拟方法调用,当子类的方法发生覆盖时,多态的调用是调用的实体的方法
编译是检查父类的方法名称,不检查子类
多态由于子类的不同因此存在不确定性
多态中父类变量引用的地址和子类相同
多态中成员方法会覆盖但是成员变量不会覆盖
多态不会调用子类特有的方法和变量为多态
多态的意义:一个父类的数组可以存放多个子类元数
多态数组:定义一个数组,数组的内容将不同的子类对象都汇总到同一个集合
多态数组-对象类型转换:
代码: chinese ch = (chinese) p
基础数据类型数据转换是改变的底层的二进制代码
引用数据类型的数据转换没有改变数据本身(存储)
语法: 优先级 . 的优先级要高于() (类型)对象实体.方法() -- 此时方法只能调用对象实体的方法不能调用类型转换的方法-- 正确调用 ((类型)对象实体).方法()
关键字:instanceof 用于判断对象和类的关系 "String" instanceof String -- 返回True
Chinese ch = (Chinese)p; // 造型存在报错的风险 因为对象p可能不能转为想要的类型
多态参数调用不同子类的不同方法,通过if 条件语句判断 出子类类型,进而调用不同的子类方法
数据类型转换:
1.基础数据 1.1小的数据类型可以自动的转为大的数据类型 1.2 大的数据类型需要强制转为小的数据类型
2.对象的数据类型转化(造形):
1.1子类可以不需要强转为父类 (子类的属性包含父类)
1.2父类 需要强转为子类
1.3无继承关系的造形是不合规范的
基础数据类型的转换成为强制转换
引用类型的转化成为造形
多态是高级编程的标志
这篇关于java 多态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding