第11讲包和接口(一).pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11讲包和接口(一).ppt

第11讲 包和接口(一) 多态的两个实例 包的定义 接口的定义 教学目标 掌握合理使用多态来设计简化程序 掌握包的概念 掌握包的定义和包的引用 理解接口的定义和接口的实现方法 实例 一:重载的使用 编写一个类,它的功能是计算两个数的和。 要求:编写多个求和方法,实现方法的重载。程序将根据参数的类型自动匹配计算和。 实例二:多态的设计 一个小孩得知邻居家养了个宠物,但不知是猫是狗还是鸭子。于是丢一块石头到邻居家院中探明真相。 Animal是一个相对抽象的类。在现实世界中,每个动物都一定属于某个特定的种类,因此,这个类中的sound()成员方法的方法体为空,即本身没有任何特定的操作,只是为了实现多态性而设置。在Dog、Cat和Duck中,覆盖了Animal类中的这个方法,它们根据具体动物的特点发出不同的叫声。小孩丢石头,相当于发出命令调用了宠物类对象的sound()方法。因为小孩并不知道是狗是猫还是鸭子,只知道是宠物。然而实际接收此消息的却是宠物的派生类对象,如果是狗,则输出“Woof Woof”字符串;如果是猫,则输出“Miiaooww”字符串;如果是鸭子,则输出“Quack quackquack”字符串。 实例二:多态的设计(续) 实例二:多态的设计(续) 实例二:多态的设计(续) 变量的隐藏和方法的覆盖 子类重新定义一个与从父类继承来的域变量完全相同的变量,称为变量的隐藏。 这里所谓隐藏是指子类拥有两个同名的变量:当子类执行继承自父类的方法时,处理的是继承来的变量;当子类执行自定义的方法时,操作的是自定义的变量,而把继承自父类的变量隐藏了起来。 方法覆盖(Override)即指在子类中重新定义父类中已有的方法。(重写) 子类通过成员变量的隐藏和方法的覆盖可以把父类的状态和行为改变为自身的状态和行为。 方法覆盖时应遵循的原则 覆盖后的方法不能比被覆盖的方法有更严格的访问权限。 覆盖后的方法不能比被覆盖的方法产生更多的异常。 上转型对象 我们经常说”老虎是哺乳动物”,”狗是哺乳动物”等。若哺乳类是老虎类的父类,这样说当然正确,但当你说老虎是哺乳动物时,老虎将失掉老虎独有的属性和功能。那么,继承关系可以扼要的表示为:“新class是旧class的一种形式。” 例:假设A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如 A a; 或 A a; A=new B(); B b=new B(); a=b; 称这个父类对象是子类对象的上转型对象。 上转型对象 对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。上转型对象具有如下特点: 上转型对象不能操作子类新增的成员变量,失掉了这部分属性;不能使用子类新增的方法,失掉了一些功能 。 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。 如果子类重写了父类的某个方法后,当对象的上转对象调用这个方法时一定是调用了这个重写的方法,因为程序在运行时知道,这个上转对象的实体是子类创建的,只不过损失了一些功能而已。 上转型对象 注:不要将父类创建的对象和子类对象的上转型对象混淆。 可以将对象的上转型对象再强制转换到一个子类对象,这时该子类对象又具备了子类所给的所有属性和功能。 不可以将父类创建的对象的引用赋值给子类声明的对象,就像不能说 ”哺乳动物是老虎”。 class 类人猿 { private int n=100; void crySpeak(String s) { System.out.println(s); } } class People extends 类人猿 { void computer(int a,int b) { int c=a*b; System.out.println(c); } void crySpeak(String s) { System.out.println(**+s+**); } } 构造方法的继承 子类可以继承父类的构造方法,遵循以下原则: 无条件继承父类的无参构造方法 如果子类定义了构造方法,在创建对象时,先执行继承自父类的无参构造方法,在执行自己定义的构造方法。 对于父类的有参构造方法,子类可以通过在自己的构造方法中使用super关键字来调用它,但这个调用语句

文档评论(0)

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

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

1亿VIP精品文档

相关文档