美文网首页
java对象转型和多态

java对象转型和多态

作者: 0843d07b95d5 | 来源:发表于2018-02-12 12:02 被阅读0次

本文为学习笔记 能力有限 如有错误望指正。谢谢!!!

对象转型:

一个基类的引用可以指向其子类的对象,基类的引用不能访问其子类新添加的成员;

一个子类的对象可以当作基类的对象来使用称作向上转型,反之称作向下转型;

instanceof 用来判断该引用型变量所“指向”的对象是否属于该类或者该类的子类。

对象转型

对象转型的便利之处:对象转型中父类引用可以指向子类对象。

对象转型

f函数的目的就是输出猫狗对象的名字和其他属性,没有对象转型我们可以为猫和狗各写一个f函数。可是有了对象转型之后我们可以将f函数的参数类型设置为猫和狗类的基类,这个时候f函数既可以传进来猫的引用也可以传进类狗的引用,可扩展性比较强。这个时候可扩展性达到最好了嘛?还没有,接下来介绍多态!

多态:

多态的三个必要条件:1继承;2重写;3 父类对象指向子类对象

多态 运行结果

在内存中的解释:

1.在栈中定义一个Cat类型的引用 c , c 指向在堆内存中new出来的Cat对象(该对象已经重写了scream 函数);

2.在栈中定义一个Lady类型的引用 l ,l 指向在堆内存中new出来的Lady对象;并将引用 c 的值赋给Lady对象的Animal类型的pet成员变量(多态)

3.l.enjoy()调用pet指向的堆内存中Cat对象的重写的scream函数(动态绑定)。

这个解释可能比较抽象献上下图参考,建议自己画图更清楚。

内存图

这个图是不准确的没有画出存放代码的codesegment,理解意思就好,语言功底有限。谅解!

 

相关文章

  • java对象转型和多态

    本文为学习笔记 能力有限 如有错误望指正。谢谢!!! 对象转型: 一个基类的引用可以指向其子类的对象,基类的引用不...

  • 第二十九节:Java基础知识-类,多态,Object,数组和字符

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,O...

  • Java面向对象-多态性

    一、多态性 多态性的体现: 对象的多态性: 向上转型:程序会自动完成父类 父类对象 = 子类实例 向下转型:强...

  • Java学习笔记 (一)

    多态性 方法的重载与覆写 对象的多态性①.向上转型:子类对象→父类对象 (自动完成)②.向下转型:父类对象→子类对...

  • java多态(重要O!)

    一、多态的语法 关于java语言中的向上转型和向下转型 1、向上转型(upcasting):子 -->父 2、向下...

  • 2020-02-20 Java 面向对象的多态性

    1.多态性的体现: 方法的重载和重写 对象的多态性 2.对象的多态性: 向上转型:程序会自动完成。...

  • Java基础面向对象三大特性之一多态(Polymorphism)

    文章目录 面向对象三大特性之一多态(Polymorphism) 二、向下转型,向上转型 面向对象三大特性之一多态(...

  • Java中的对象转型(多态)

    多态是指父类的同一行为在不同状态表现出不同的响应。 向上转型(upcasting):父类的引用指向子类的对象(隐性...

  • 12.多态中的向上转型和向下转型

    多态中向上转型与向下转型 多态的转型分为向上转型与向下转型两种: A:向上转型:当有子类对象赋值给一个父类引用时,...

  • 对像和类

    Java 对象和类 多态 继承 封装抽象 Java对象和类 类对象实例方法消息解析代码: 11 运行结果: 小狗的...

网友评论

      本文标题:java对象转型和多态

      本文链接:https://www.haomeiwen.com/subject/mhfftftx.html