面向对象多态

简介: 面向对象多态

多态的概念

继承或者接口都是多态性的体现,举例:小明是个学生,它既有学生身份又有人类身份,这就是多太

多态的格式与使用

父类引用指向子类对象

格式:父类名称 对象名 = new 子类名称();

Shix shix = new Ces();
接口名称 对象名 = new 实现类名称();
Jiek jiek = new Shix();


在动态代码中,成员方法访问的规则

new的是谁就先用谁,没有就往上找

编译看左边,运行看右面

对象的向上转型

其实就是多态的写法

父类名称 对象名 = new 子类名称():含义:右侧创建一个子类对象,把他当父类看待

一旦转型就无法访问本类的内容,但是可以向下转型【还原】

向下转型

格式:子类名称 对象名 = (子类名称)父类对象; 含义:将父类对象还原成子类对象

Animal animal = new Cat();
animal.eat();
Cat cat = (Cat) animal;
cat.wgfy();


必须先向上转型了之后在转回去,不能直接转回去

instanceof关键字进行

格式:对象 instanceof 类名称

将会得到一个boolean结果,判断前面的对象能否向下转型

用if语句

相关文章
|
11月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
246 27
|
7月前
|
存储 弹性计算 Linux
安装Docker
常见操作系统安装docker步骤
1160 15
|
Shell 测试技术 Android开发
Android自动化压力测试图解教程——Monkey工具
引用:http://www.eoeandroid.com/blog-115192-2540.html  有时候我们需要对一个软件进行压力测试,检查该软件的性能。如果是人工进行测试的话,效率会低很多,而且会比较枯燥。
2288 0
Android自动化压力测试图解教程——Monkey工具
|
JavaScript 编译器
TypeScript 接口
TypeScript 接口
|
jenkins Java 持续交付
使用 Jenkins 创建微服务应用的持续集成
使用 Jenkins 创建微服务应用的持续集成
|
程序员
【数据结构】栈的实现
【数据结构】栈的实现
234 0
【数据结构】栈的实现
|
开发工具 Android开发
解决bug:使用Genymotion模拟器时,出现Unable to create virtual device: Connection timeout occurred
解决bug:使用Genymotion模拟器时,出现Unable to create virtual device: Connection timeout occurred
252 0
解决bug:使用Genymotion模拟器时,出现Unable to create virtual device: Connection timeout occurred
|
Oracle 安全 关系型数据库
数据库安全防护之oracle创建用户分配权限
谈到数据库安全防护设置oracle数据库的权限系统分为系统权限与对象权限。
286 0
数据库安全防护之oracle创建用户分配权限
|
人工智能 算法 开发者
算法笔试模拟题精解之“跳房子”
这是一个动态规划的问题。设f(i)为到第i个位置处的最小步数。初始化f的每个位置步数都是一个足够大的值。
算法笔试模拟题精解之“跳房子”