- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
七继承第章
目标理解继承的概念和作用掌握继承的语法掌握继承在面向对象程序编程的应用掌握super关键字
概述面向对象编程的三大基本特点是:封装、继承和多态在Java中一个类可以从另一个类继承或派生新类可以通过继承,从现有的类中吸收其属性和行为,产生新类所需的功能继承提供了重复利用程序资源的一种途径
基类与派生类两个类的基本成员中可能存在一部分相同的情况classPeople{privateStringname;privatecharsex;privateintage;……publicvoidprint(){System.out.println(姓名:+name);System.out.println(性别:+sex)System.out.println(年龄:+age);}}classWorker{privateStringname;privatecharsex;privateintage;privateStringskill;privatedoublewage;……publicvoidprint(){System.out.println(姓名:+name);System.out.println(性别:+sex)System.out.println(年龄:+age);System.out.println(技能:+skill);System.out.println(工龄:+wage);}}
基类与派生类通过继承机制,可以利用现有的类来定义新的类从一个旧类派生一个新类的机制称为继承新类不仅拥有新定义的成员,同时还拥有被继承的类的成员People类Worker类基类(或父类,超类)派生类(或子类)
基类与派生类动物继承关系类图Dog#age:int+say():voidAnimal#age:int+say():voidCat#age:int+say():voidTiger#age:int+say():void派生类isa基类
基类与派生类继承关系举例:基类派生类学生借贷雇员银行存款……研究生、本科生汽车贷款、住房按揭贷款、抵押贷款教师、职员支票账户、储蓄账户……
继承的基本语法关键字extends表示继承classBase{……}classSubextendsBase{……}
继承的基本语法示例:从Animal类派生Dog类classAnimal{protectedintage;//保护型访问权限publicvoidAnimal(){age=1;}publicvoidsay(){System.out.println(动物的叫声!);}}classDogextendsAnimal{publicvoidwagTail(){System.out.println(摇尾巴……);}}//使用Dog类Dogfido=newDog();fido.say();fido.wagTail();
访问控制Java定义了访问控制规则,限制从类外部使用类成员Java中提供了四种访问修饰符:public(公有)protected(保护)默认(包级作用域)private(私有)
访问控制访问控制规则访问修饰符可以从自身访问可以从包内访问可以从包外派生类访问可以从包外访问public是是是是protected是是是否默认是是否否private是否否否如果可以预见所编写的类将来是用作一个基类,那么除了公有的部分之外,派生类可能需要访问的所有属性或方法应该被声明为保护的
继承中的构造方法基类的构造方法不能被派生类继承派生类的构造方法在执行自己的任务之前将会调用基类的构造方法。调用分两种:显式调用隐式调用
继承中的构造方法显式调用:在派生类构造方法的第一句使用super关键字来指定调用基类的哪个构造方法super();//调用基类的默认构造方法super(实参);//调用基类带参数构造方法隐式调用:如果没有显式调用,则自动调用基类的默认构造方法,相当于显式调用super();
继承中的构造方法在Animal和Dog类中添加构造方法classAnimal{//基类protectedintage;publicAnimal(){
文档评论(0)