输出类的代码如下
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同一个类,但是代码进入的地址有多个不同,也就是称为'将父类的引用指向了子类的对象


控制台输出如下

 

 


原文地址:http://www.cnblogs.com/CHX249/p/16857476.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性