925上溯造型.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
925上溯造型

一、编程思想:(三)闭开原则 闭:对程序的修改关闭。 开:对扩展开放,也是对其他程序的使用开放。 3、闭开原则的真正含义:当客户的需求发生改变之后,要求程序员不允许修改源程序,在原有程序的基础上进行平滑的扩展(就是横向扩展),为了减少继承的关系链。 可以平滑的扩展一个类型,也可以平滑的扩展一个方法。 重载技术可以实现闭开原则。 二、里氏代换原则:凡是超类可以出现的地方,子类就一定可以出现。 这个原则为上溯造型准备的 例子:父类是马,黑马和白马都是其子类。设计一个方法,实现人骑马。 class Ma class baiMa extends Ma class heiMa extends Ma class person void Q Ma m System.out.println 人骑马 ; class UseMain public static void main String args[] person p new person ; baiMa m new baiMa ; p.Q m ; 运行结果:人骑马 改进上面的程序,实现哪个人骑什么颜色的马。 class Ma private String color; Ma String c color c; String getColor return color; class baiMa extends Ma baiMa String c super c ; class heiMa extends Ma heiMa String c super c ; class person private String name; person String n name n; String getName return name; void Q Ma m System.out.println getName +骑的是+m.getColor +的马 ; class UseMain public static void main String args[] person p new person 张三 ; baiMa m new baiMa 白色 ; p.Q m ; 运行结果:张三骑的是白色的马。 三、1、将子类对象赋值给父类对象.sup父类,sub子类 本类对象的字符串表述格式:this.toString 结果是:类名@+hash码十六进制 如果在程序中出现SupClass sup new SubClass ; 将子类对象赋值给父类对象,所得到对象是这样的一个对象——它是一个编译是为父类对象,但运行却是一个子类对象。具体特征如下: ① 被声明为父类对象 ② 拥有父类属性 ③ 占用子类的内存空间 ④ 子类方法覆盖父类的方法时,此时对象调用的是子类的方法;否则,自动调用继承父类的方法。 这个对象既不是父类对象,也不是子类对象。当我们用到它的方法时,把它看成子类对象,若用到它的属性时,把它看成父类对象。它是一个占用父类属性,而使用子类方法的对象,至于到底是什么对象得根据声明来看,它应算是父类对象,但拥有子类方法。 2、上溯造型: 定义:就是可以将子类对象赋值给超类对象,看上去像父类的对象拥有的是父类的成员变量。但是调用的却是子类的方法。这个方法是重构或者是继承自父类而来的方法。从而可以完成自顶向下的调用过程。 方法的动态调用:自底向上 自顶向下——将代码具体实现细节隐藏起来(实现了封装的动态属性的隐藏)。由抽象层的对象调用应用层方法。 例:实现了动态绑定。体现了封装性,隐藏了方法体内容。一个类——图形编辑器,要求画出三角形、平行四边形和矩形。 class SupClass //图纸 public void sj public void px public void jx class SubClass extends SupClass //由子类完成代码的实现 public void sj for int i 0;i 5;i++ for int j 0;j i;j++ System.out.print * ; System.out.println ; public void px for int i 0;i 5;i++ for int j 0;j i;j++ System.out.print ; System.out.println * * * * * ; public void jx for int i 0;i 3;i++ for int j 0;j 5;j++ System.out.print * ; System.out.println ; class UseSupAndSub public static void main String

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档