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

子类和继承.pptx

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
子类和继承

1;2010-8-1;真核生物是其细胞具有细胞核的单细胞生物和多细胞生物的总称,它包括所有动物、植物、真菌和其他具有由膜包裹着的复杂亚细胞结构的生物。;动物是多细胞真核生命体中的一大类群,称之为动物界。动物身体的基本形态会在它们发育时变得固定,通常是早在其胚胎发育时,但也有些会在其稍后的生命中有个变态的过程。大多数动物是能动的-它们能自发且独立地移动。绝大多数动物是消费者-它们依靠其他生命体(如植物)作为其食粮。但也有少部分动物属于分解者——以已经死亡的生物体(有机质)作为食粮(例如蚯蚓)。;§6.1 子类与父类 ;class Student extends People{ ……… };2010-8-1;9;§6.2.2 子类和父类不在同一包中的继承性 ?;何时使用protected: 1,允许不同包中的子类继承其成员变量和方法。 2,禁止不同包中的类访问其成员变量和方法;权限;权限;2010-8-1;§6.3 成员变量的隐藏和方法重写 §6.3.1 成员变量的隐藏 ;2010-8-1;2010-8-1;例3, 情况1 如果将子类改为: double computer(float x,float y){ …… } 情况2 如果将父类改为: double computer(float x,float y){ …… } 情况3 如果将子类改为: float computer(float x,float y, double z){ …… } 情况4 如果将父类改为: protected float computer(float x,float y, double z){ …… } ;2010-8-1;2010-8-1;§6.4.2 使用super调用父类的构造方法 ;场景1 省略univerStudent的super结果? 如果子类的构造方法没有super关键字,super();是默认加载到子类的构造方法中; 场景2 如果再省略Student中的student()结果? 如果一个类中有一个或多个构造方法,默认构造方法会取消,如果此类需要作为父类,应该包括一个不带参数的构造方法,防止子类省略super出现错误;2010-8-1;2010-8-1;2010-8-1;2010-8-1;2010-8-1;2010-8-1;例7;注意: 父类对象不等于子类对象的上转型对象(主要区别在于重写方法能否调用) 上转型对象可以强制转化为子类对象,该子类对象又具备了子类的所有属性和功能 不可以将父类创建的对象引用赋值给子类声明的对象 People 类人猿是人=new 类人猿();;2010-8-1;2010-8-1;注意: 1.abstract类中可以有abstract方法 abstract class A{ abstract int min(int x,int y); int max(int x,int y){……} } 2.abstract类不能用new运算创建对象 子类必须重写抽象父类的抽象方法给出方法体 ;3.因为final不能重写,但是又因为“2”所以final和abstract不能同时修饰方法或类 4.Abstract类可以没有abstract()方法; 5.如果一个abstract类是abstract类的子类,他可以重写父类的abstract方法,也可以继承这个abstract()方法; 例9;2010-8-1;使用多态进行程序设计的核心技术之一是使用上转型对象,即将abstract类声明对象作为其子类的上转型对象,那么这个上转型对象就可以调用子类重写的方法。 所谓面向抽象编程,是指当设计某种重要的类时,不让该类面向具体的类,而是面向抽象类,即所设计类中的重要数据是抽象类声明的对象,而不是具体类声明的对象。 ;public class Circle extends Geometry { double r; Circle(double r) { this.r=r; } public double getArea() { return(3.14*r*r); } };如果柱体的底部不是圆型,如何修改 1,增加所有类型的底部成员变量,增加不同类型的求体积方法。 2,优雅地使用面向抽象的编程,使的Pillar的底部不会依赖于某个具体的类,而是随需要进行改变而不用对pillar进行任何改变。 例子10;2010-8-1;在设计系统时,应当首先考虑到用??需求的变化,将应对用户变化的部分设计为对扩展开放,而设计的核心部分是经过精心考虑之后确定下来的基本结构,这部分应当是对修改关闭的,即不能因为用户的需求变化而再发生变化,因为这部分不是用来应对需

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档