Java语言第6章 继承和多态.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文档。上传文档
查看更多
6.9 超类 Java语言规范要求equals方法具有如下的性质: 自反性:对于任何非空引用x,x.equals(x)将返回true; 对称性:对于任何引用x和y,当有仅当y.equals(x)返回true时,x.equals(y)返回true; 传递性:对于任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true; 一致性:如果x和y引用的对象没有发生改变,那么x.equals(y)的重复调用将返回同一结果。 6.9 超类 任何类类型的所有实例都可以用Object类型的变量来代替。这是因为Object类是所有类的父类。 因此我们可以有如下的声明: Object obj = HELLO; 这是用Object类型指向了字符串类(String),这种声明是合法的。 6.10 数组列表 在第10章中,我们将讲到数组,数组的容量一旦设定,就不可以再被更改。这对于程序的运用来说确实是一个遗憾,我们在程序中经常会遇到不确定的因素,需要构建不确定容量的数组。比如说:我们想统计一个班级中学生成绩的分布情况,在90~100分、80~89分、70~79分等各个分数段的学生分布情况,在程序运行之前,我们并不能确定每个分类段的人数究竟有多少,如果需要用数组来容纳学生对象时,确实很难处理,我们就再学习一个类似于数组的新的类──数组列表(ArrayList),通过数组列表可以动态的构建数组,数组列表可以根据程序运行时的需要动态的伸缩,以适应程序不确定因素的存在。 6.10 数组列表 数组与数组列表之间有很重要的区别。数组是Java语言的一个功能。对于每一个元素类型都有一个数组类型与之相对应。例如: int型元素有int[]与之对应,Student型有Student[]与之对应。 而ArrayList类是一个库类,它定义于java.uitl包中,这是一个单一的能容纳所有类型的类型,因为在数组列表中存放的是Object类型,也就是说所有的元素都是以最原始的父类来代替的,因此无论何时如果需要从数组列表中提取一项,那就需要进行造型转换,将元素还原到它本身的类型,这个才可能有具体的意义。 6.10 数组列表 使用add方法可以向一个数组列表中添加新的元素。例如: ArrayList allStudent = new ArrayList(); allStudent.add(new Student(Tom,); allStudent.add(new Student(Jack,); … … 这样就可以无限制地向数组列表中添加新的元素,因为添加的元素类型是Object类的子类,所以系统会自动完成子类向父类的转换。 6.1 继承的含义 6.2 继承的实现 6.3 构造器的调用 6.4 类之间的关系 6.5 继承层次图 6.6 关于设计好继承的几点建议 6.7 防止类的继承 6.8 多态 6.9 超类 6.10 数组列表 6.11 对象包装器 第六章 继承和多态 6.1 继承的含义 对于Java编程语言,所谓的继承就是在已经存在类的基础上再扩展产生新的类。已经存在的类我们称为父类、超类或基类,新产生的类我们称为子类或派生类。既然子类继承了父类,它就拥有父类的所有特性,当然我们可以在子类中添加新的方法与字段,这些新添加的方法与字段属于也仅仅属于子类。 6.2 继承的实现 在Java中继承是通过关键字“extends”来实现的。“extends”在英语中是扩展的意思,所以在Java中继承有时也被称为扩展。关键字“extends”说明要构建一个新类而新类是从一个已经存在的类中衍生出来的。 6.2 继承的实现 在ClassManage类中新增添一个字段用以储存学生的职务,并追加可以得到一个学生的职务(strDuty)的方法,很显然这是一个新的访问器。代码如下: … … private String strDuty = ; /** * 得到学生担负的职务 */ public String getDuty() { return strDuty; } 6.2 继承的实现 这些方法与字段并没有特别的地方,像使用其他类及方法一样,假如现在有一个班干部,他的职务是班长,你完全可以像下面一样使用它: ClassManage monitor = … …; monitor.getDuty(); 当然,如果读者所拥有的只是学生类的对象,肯定不能使用这个方法,因为这个方法只是属于ClassManage类,在类Student中并没有定义。 6.2 继承的实现 这里关键字super具有不同的含义。代码: super(name, number); 的意思是

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档