首页 > 其他分享 >Demo57_多态的另一种表现形式

Demo57_多态的另一种表现形式

时间:2022-11-04 13:44:45浏览次数:36  
标签:dw1 表现形式 Demo57 子类 dog 多态 地址 dw js

        输出类的代码如下
dog LbLd = new dog();//创造一个子类的对象
LbLd.name="拉布拉多";//给子类的对象赋值
System.out.println("=======");
LbLd.js();//可以通过对象名.方法名执行方法
动物 dw=LbLd;//将父类的引用指向了子类的对象,将LbLb对象的地址给了dw,所以dw输出代码的时候是按着这个地址来的
//dw这个对象属于动物类,它只能调用动物类的方法及属性
dw.js();//调用了动物类的js()方法,代码在寻找js()方法时先找到了dog类的js()方法所以输出dog类
动物 dw1 = new dog();//dw1属于动物类
((dog) dw1).jss();//强制类型转换,子类有父类没有
System.out.println("====");
dw1.js();//哈士奇,调用了动物类的js()方法,代码在寻找js()方法时先找到了dog类的js()方法所以输出dog类
((dog) dw1).name="中华田园犬";//强制给子类属性赋值
dw1.js();
}
}
父类与子类的代码如下
dog LbLd = new dog(); 1.将dog类的其中一个地址为dog@110给LbLd
LbLd.name="拉布拉多" 2.dog@110这个地址的name已经被赋值为拉布拉多
LbLd.js();// 3.在地址为dog@110输出js方法
动物 dw=LbLd 4.将LbLd的地址赋给dw,使dw也是走dog@110这个地址代码
dw.js(); 5.在地址为dog@110输出js方法

动物 dw1 = new dog(); 1.将dog类的其中一个地址为dog@888给dw1,但是此时此刻的dw1还是属于动物类但是他能走dog类的地址,因为它们有继承关系
dw1.js(); 2.走地址为dog@888的js方法
如果要走子类有的父类没有的只能进行强制转换(属性与方法)

左侧的类不同,所产生的地址也就不同,地址不同所执行的代码也就不同
多态就是可以new同一个类,但是代码进入的地址有多个不同,也就是称为'将父类的引用指向了子类的对象


控制台输出如下

 


 


标签:dw1,表现形式,Demo57,子类,dog,多态,地址,dw,js
From: https://www.cnblogs.com/CHX249/p/16857476.html

相关文章

  • 面向对象编程 多态
    多态静态多态性,重载重载:同一个方法中有多个相同名称的方法,但参数不一样。在编译阶段(程序未运行的时候),函数之间就产生了一对一的关系。减少函数的命名,多个相同的函数可......
  • Demo56_关于多态_较复杂
    输出类的代码如下packagecom.oop.DuoTai_5;publicclassApplication{publicstaticvoidmain(String[]args){//方法的输出与右侧关系不大,左侧......
  • java多态性(转载)
    原文链接https://www.cnblogs.com/jack204/archive/2012/10/29/2745150.htmlJava中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和......
  • java多态的案例
    classAnimal{intage=100;//如果父类中没有call方法,那么子类中也不能调用该方法,编译时会出错publicvoidcall(){System.out.println("动物再......
  • C++:45---多态
    一、多态介绍面向对象的核心思想是多态性,其含义是“多种形式”概念:在子类覆盖了父类函数的情况下,用父类的指针(或引用)调用子类对象,或者通过父类指针调用覆盖函数的时候(动......
  • java多态
    测试一:成员变量:编译时期向左看,运行时也向左看测试二:成员方法:编译时期向左看,运行时期向右看什么是多态呢?多态可以理解为是同一个方法由于发送对象的不同而执行不同的行为......
  • Java-什么是多态,多态的具体体现有那些?
    多态:方法或者对象有多种形态,是OOP的第三大特征,是建立在封装和继承之上的多态的具体体现:方法多态重载体现多态重写体现多态对象多态对象的编译类型和运行类型可......
  • 【Java】接口多态练习题
    设计一个USB接口,USB接口拥有启动和停止方法,网卡类实现USB接口,重写实现网卡启动停止方法声卡类实现USB接口,重写实现声卡启动和停止方法,主板类拥有使用USB接口的方法。方法......
  • python 封装 多态 继承 重写
    面向对象的三大特征封装:提高程序的安全性继承:提高代码的复用性(继承包括重写)多态:提高程序的可扩展性和可维护性 三大特征的实现:封装:将数据(属性)和......
  • java编程语言中的多态【多测师_王sir】
    多态指的是同一个方法调用,由于对象不同可能会有不同的行为,现实生活中,同一个方法,具体实现会完全不同。比如:同样是调用人的“休息”方法,张三是睡觉,李四是旅游,某某是敲代码,数学......