java的继承机制.pptVIP

  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文档。上传文档
查看更多
Java的继承机制 继承 3.Java的继承 1)Java中只支持单继承,不支持多重继承; 2)Java中可以实现多层继承; 3)子类继承父类中所有的非私有属性和方法。(构造方法除外) 例如: class Student extends Person { ?? String no; //学号?? //其它… } 一位脾气暴躁的父亲名叫Tom,养有一儿一女,儿子叫Jerry,女儿叫Alice。父亲心情不好的时候就打孩子解闷,打儿子的时候,儿子撒腿就跑;打女儿的时候,女儿比较老实,一边哭一边挨打。 public class Father { private String name; public Father(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void beat(Son c) { c.run(); } public void beat(Daughter c) { c.cry(); } } Son.java Daugther.java public class Son extends Father { ? ? public Son(String name) { ??? super(name); ? } ? ? public void run() { ??? System.out.println(getName() + 跑了); ? } } 如果这位父亲又领养了一个养子,也要打他,该怎么办呢? public class Father { private String name; public Father(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) this.name = name; } public void beat(Father c) { if (c instanceof Son) { ((Son)c).run(); } if (c instanceof Daughter) { ((Daughter)c).cry(); } } } 考虑使用继承的情况 场景1:原类已经存在,并能正常运用,新类需要新增一些功能。 比如一个厂家原来是生产U盘的,已经实现了类UDisk,包含readFile和writeFile方法,现在想要生产MP3随身听 (UMP3)。重写一个UMP3类显然很笨,解决方案是让UMP3继承UDisk,这样UMP3可以直接使用父类的readFile和writeFile方法,然后再添加一个playMP3方法就OK了。 场景2:原类已经存在,并能正常运用,但是对其中的一些方法不满意,需要改变。 举游戏CS的例子,里面有一杆枪大家都很熟悉:B46(又名重狙或AWP),此枪威力强大,精确度高,用一个类描述B46的话应该包含以下几个方法:开镜,射击,换子弹,闭镜。但是B46最大的缺点就是换子弹速度太慢,于是又出现了B47(连狙),换子弹速度很快,如何描述类B47呢?只需要让B47继承自B46,然后覆盖父类中的“换子弹”方法就可以了 。 场景3:原类已经存在,并能正常运用,但是觉得其中的一些方法不完整,需要扩展。 这里举一个手机来电显示的例子,早期的手机有“来电显示”方法,但只能显示来电号码,后来带电话薄功能的手机出了能显示号码对方的姓名,显然,可以让带电话薄的手机继承老手机。是否要覆盖老手机的“来电显示”方法呢?是的,需要覆盖,但不是一盖了之,老手机的“来电显示”方法还可以用,我们只是要扩展其中的功能,那么可以在新手机的“来电显示”方法中先调用父类的该方法,实现显示对方的号码,自己再实现显示姓名的功能。现在的彩屏的手机出了能现实号码、姓名,还能现实来电者的照片,可以让

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档