在我的理解:java的向上和向下转型可以看成是类型的转换。

public class Person {

public void eat(){

System.out.println("Person eatting...");

}

public void sleep() {

System.out.println("Person sleep...");

}

}

public class Superman extends Person{

public void eat() {

System.out.println("Superman eatting...");

}

public void fly() {

System.out.println("Superman fly...");

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

测试向上转型的主方法:

public class Main {

public static void main(String[] args) {

Person person = new Superman();

person.sleep(); //调用的是父类person的方法

person.eat(); // 调用的是Superman里面的eat方法,Superman重写了Person父类的方法

//person.fly(); //报错了,丢失了Superman类的fly方法

}

}

1

2

3

4

5

6

7

8

运行的结果:

Superman sleep…

Superman eatting…

分析:当在执行Person person = new Superman()时,我们来看看它的内存存储:

这里写图片描述

从此图我们可以看出 向上转型会丢失子类的新增方法,同时会保留子类重新的方法。

测试向下转型的主方法:

public class Main {

public static void main(String[] args) {

Person person = new Superman();

Superman s = (Superman)person;   //向下转型

s.sleep();

s.fly();

s.eat();

}

}

1

2

3

4

5

6

7

8

9

运行的结果:

Person sleep…

Superman fly…

Superman eatting…

分析:当在执行Superman s = (Superman)person;时,我们来看看他们的内存存储:

这里写图片描述

在这里我们看出 向下转型可以得到子类的所有方法(包含父类的方法)。

---------------------

作者:ldsh304

来源:CSDN

原文:https://blog.csdn.net/ldsh304/article/details/77622245

版权声明:本文为博主原创文章,转载请附上博文链接!

java多态上转下_java的多态(向上转型、向下转型)相关推荐

  1. java多态上转下_(转)java的多态(向上转型、向下转型)

    在我的明白:java的向上和向下转型可以看成是类型的转换. ---------------- 版权声明:本文为CSDN博主「ldsh304」的原创文章,遵照CC 4.0 BY-SA版权协议,转载请附上 ...

  2. Java从入门到放弃09---多态/向上转型/向下转型/多态内存图/抽象类/关键字abstract不能和哪些关键字共存/接口/类与类,类与接口,接口与接口的关系/抽象类与接口的区别

    Java从入门到放弃09-多态/向上转型/向下转型/多态内存图/抽象类/关键字abstract不能和哪些关键字共存/接口/类与类,类与接口,接口与接口的关系/抽象类与接口的区别 01 多态 多态指的是 ...

  3. Java多态中的 向上转型/向下转型

     Java 向上转型和向下转型的详解 转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法 ...

  4. Java 中的上转型和下转型

    在我们的日常中,上转型和下转型都使用的比较少,所以当别人问起来什么是上转型,什么是下转型,自己往往一片模糊,或者不能将他们进行明显的区分. 在这里,我将以我个人理解来论述上下转型,希望对大家有帮助,如 ...

  5. java多态的概念_java中多态概念、实现原理详解

    一.什么是多态? 1.多态的定义 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用) 2.多态的作用 消除类型之间的耦合关系 3.多 ...

  6. java的多态的作品_Java的多态

    什么是多态? 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同 ...

  7. java 对象的态_Java面向对象-------多态总结

    1.多态:是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现. 2.多态作用: 1. 消除类型之间的耦合关系 ...

  8. Java接口,多态,向上转型,向下转型的意义

    接口 官方解释: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现 ,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 包含 ...

  9. java:多态详解,以及对象的向上和向下转型

    大家好,兔胆包天我又来啦,今天给大家分享的是多态,多态最主要的是父类引用指向子类对象,还是老办法,直接上代码,代码中注解的很详细哦. 这是第一个代码: //测试多态 public class Anim ...

最新文章

  1. HP服务器选型一般标准
  2. python3中的多线程
  3. WeApp-Workflow:基于Gulp 的“微信小程序”前端开发工作流
  4. 开发健壮的企业级应用的研究
  5. 机器学习-Random Forest算法简介
  6. .NET5全面拥抱Azure云,微软市值重回巅峰,那些年吹过的牛,都实现了!
  7. 哈啰单车涨价:起步价1元/15分钟 仅限北京地区
  8. fs.readfile 显示html,javascript – 从fs.readFile获取数据
  9. JS 正则(RegExp)
  10. 图的简单应用(C/C++实现)
  11. JavaScript 作用域
  12. java域名获取ip_JAVA获得域名IP地址的方法
  13. 销售管理系统java sql_java+sqlserver商品销售管理系统的设计与实现
  14. vue.js入门以及和echarts整合之柱状图和中国地图
  15. 竖屏java转横屏_Android屏幕旋转之横屏竖屏切换的实现
  16. C#毕业设计——基于C#+asp.net+sqlserver的交通信息网上查询系统设计与实现(毕业论文+程序源码)——交通信息网上查询系统
  17. 【考研数学】五. 二重积分
  18. 怎样更改软件默认安装路径由C盘到其他盘
  19. 单场GMV翻了100倍,冷门品牌崛起背后的“通用法则”是什么?
  20. 2019.03.30【NOIP提高组】模拟 B 组 排序、二分+spfa、树形DP+前缀和

热门文章

  1. Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget
  2. 小程序切换账户拉取仓库文件的appid提示
  3. codeforces 112APetya and Strings(字符串水题)
  4. hibernate简单入门教程(四)---------关联映射
  5. springboot 常用插件
  6. JavaScript 基础(二)
  7. 怎样给Spark传递函数—怎样让你的Spark应用更高效更健壮
  8. 2005毕业生薪酬预测女超男
  9. 多款 D-Link 路由器受多个 RCE 漏洞影响
  10. EJB3.0高速入门项目开发步骤