Java-第06章-继承和多态8.30.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-第06章-继承和多态8.30

第6章 继承和多态 6.1 何谓继承 什么时候用继承:多个类间出现重复的代码时,就把相同的代码提升为父类。 如何在代码中体现继承:extends关键字 编写主类,验证上述类之间的继承。 注意:父类的private成员会被继承,只是子类无法直接存取,必须通过父类提供的方法来存取。 6.1.2 多态与is-a Java继承的特点:子类只能继承一个父类。 子类和父类是is-a关系。Swordman is a Role,Magicial is a Role。这是理解多态的基础 6.1.2 多态与is-a 总结is-a原则: 用于判断编译是否成功,理解is-a语句是学习多态的基础。 例:设计static方法,显示所有角色的血量。 6.1.3 重新定义行为 2个子类中的方法,方法签名一致,只是内容有区别,为了减少代码书写,也可以pull up。 在主类RPG中验证重新定义(override) @Override的用法:用在子类中,用于检查子类的方法是否重定义了父类的某个方法,防止拼写错误。 放在该方法的前面一行。 6.1.4 抽象方法、抽象类 规定:含有abstract方法的类,一定要在class前标示abstract,表明该类是一个定义不完整的抽象类。抽象类是无法实例化的。演示 6.2 继承语法细节 细节1:继承中的protected成员 细节2:继承中的重新定义 细节3:继承中的构造函数 细节4:继承中final关键字 细节5:java.lang.object类 细节6:垃圾回收 细节1:继承中的protected成员 想让子类直接存取的数据成员,定义为protected。被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类中直接存取。 访问修饰符 Java的3个权限关键字public,protected,private,加上无权限关键字的范围情况 细节2:super关键字 当子类重新定义父类的方法时,有时不是完全重写父类方法,只是在父类方法的前后做点加工。这时可以在子类中重写方法时,在父类方法的名前加上super。例 细节3:继承中的构造函数 如果类有继承关系,创建子类实例时,会先执行父类的构造函数,再执行子类的构造函数。如果父类中重载多个构造函数,且子类没有指定执行父类中哪个构造函数,默认会调用父类中无参构造函数。 如果想执行父类中的某构造函数,可以使用super()指定 常见的错误: 注意区分this(参数)和super(参数): super()用在继承发生的时候,用在子类中,以指定调用父类的哪一个构造函数,由其参数决定 this()代表调用本类中的另一个构造函数,调用哪一个构造函数,由其参数决定。 相同点:都必须放在构造函数第一行。 细节4:继承中final关键字 final可以使用在: 变量前面 方法前面 类的前面 Class前若加上了final关键字,表示其不能被继承。 如果在定义方法成员时使用“final”,表示该方法成员在无法被子类重新定义。 细节5:java.lang.object类 Java规定,子类只能继承一个父类,如果定义类时没有使用extends关键字,说明,一定是继承java.lang.object类。 即Object是Java程序中所有类的父类,每个类都直接或间接继承自Object类 作业:课后选择题 public class Bird { protected String name; public Bird(String name){ this.name=name;} public Bird copy(){ return new Bird(name); } } public class Chicken extends Bird{ public Chicken copy(){ return new Chicken(); } } Object o1=hello; Object o2=new Date(); Object类 public class Foo { } public class Foo extends Object { } 细节6:垃圾回收 Java提供垃圾收集机制 在适当的时候,Java执行环境会自动检查对象,看看是否有未被参考的对象 如果有的话就清除对象、回收对象所占据的内存空间 public static void main(String[] args) { Some some1=new Some(); Some some2=new Some(); Some some1=some2; } * * * private String name;//角色名称 pri

文档评论(0)

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

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

1亿VIP精品文档

相关文档