网站大量收购独家精品文档,联系QQ:2885784924

新Java应用开发与实践 教学课件 刘乃琦 苏畅 第8章 接口、继承和多态.ppt

新Java应用开发与实践 教学课件 刘乃琦 苏畅 第8章 接口、继承和多态.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.1.1 接口的定义 8.1.2 接口的实现 3.equals()方法 在讲解Java基础语法时,曾介绍过“==”操作符。它可以用来比较两个基本类型的变量值是否相同。此外,还可以将其用于引用类型。这时,它用于比较两个引用是否指向同一个对象。Object类中定义的equals()方法,其默认实现也是比较两个引用是否指向同一个对象。这在实际开发中并无任何意义。因此通常需要重写该方法来比较实际内容是否相同。 【例8-4-3】在项目中创建EqualsDemo类,在主方法中使用“==”和equals()方法来比较内容相同的两个字符串对象。 public class EqualsDemo { public static void main(String[] args) { String s1 = new String(mrsoft); // 创建新字符串 String s2 = new String(mrsoft); // 创建新字符串 System.out.println(s1 + 和 + s2 + 指向同一对象: + (s1 == s2)); System.out.println(s1 + 和 + s2 + 内容相同: + (s1.equals(s2))); } } 程序的运行效果如图8-5所示。 8.5.1 向上转型 8.5.2 向下转型 8.5 对象类型的转换 我们说平行四边形是特殊的四边形,也就是说平行四边形是四边形类型的一种,那么就可以将平行四边形对象看作是一个四边形对象。再比如一只鸡是家禽的一种,而家禽是动物中的一种,那么也可以将鸡对象看作是一个动物对象。可以使用如代码表示平行四边形与四边形的关系。 8.5.1 向上转型 【例8-5-1】在项目中创建Parallelogram类,在类中创建Quadrangle类,并使Parallelogram类继承Quadrangle类,然后在主方法中调用父类的draw()方法。 class Quadrangle { // 四边形类 public static void draw(Quadrangle q) { // 四边形类中的方法 // SomeSentence } } public class Parallelogram extends Quadrangle { // 平行四边形类,继承了四边形类 public static void main(String args[]) { Parallelogram p = new Parallelogram(); // 实例化平行四边形类对象引用 draw(p); // 调用父类方法 } } 在例8-5-1中,平行四边形类继承了四边形类,四边形类存在一个draw()方法,它的参数是Quadrangle(四边形类)类型,而在平行四边形类的主方法中调用draw()时给予的参数类型却是Parallelogram(平行四边形类)类型的。在这里一直在强调一个问题,就是平行四边形也是一种类型的四边形,所以可以将平行四边形类的对象看作是一个四边形类的对象,这种技术被称为“向上转型”。试想一下正方形类对象可以作为draw()方法的参数,梯形类对象同样也可以作为draw()方法的参数,如果在四边形类的draw()方法中根据不同的图形对象设置不同的处理就可以做到在父类定义一个方法完成各个子类的功能,这样使同一份代码可以毫无差别地运用到不同类型之上,这就是多态机制的基本思想。 图8-6中演示了平行四边形类继承四边形类的关系。 在图8-6中可以看出,平行四边形类继承了四边形类,常规的继承图都是将顶级类设置在页面的顶部,然后逐渐向下,所以将子类对象看作是父类对象被称为“向上转型”。由于向上转型是从一个较具体的类到较抽象的类之间的转换,所以它总是安全的,例如可以说平行四边形是特殊的四边形,但不能说四边形是平行四边形。 通过向上转型可以推理出向下转型是将较抽象类转换为较具体的类。这样转型通常会出现问题,例如不能说四边形是平行四边形的一种,不能说所有的鸟都是鸽子,这非常不合乎逻辑。可以说子类对象总是父类的一个实例,但是父类对象不一定是子类的实例。如果修改例8-8,将四边形型类对象赋予平行四边形类对象,我们来看一下在程序中如何处理这种情况。 8.5.2 向下转型 【例8-5-2】修改例8-5-1,在Parallelogram类的主方法中将父类Quadrangle的对象赋值给子类Parallelogram的对象的引用

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档