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

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

  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文档。上传文档
查看更多
8.1.1 接口的定义 8.1.2 接口的实现 【例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的对象的引用变量将使程序产生错误。 class Quadrangle { public static void draw(Quadrangle q) { // SomeSentence } } public class Parallelogram extends Quadrangle { public static void main(

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档