动物类派生——继承与多态.ppt

动物类派生——继承与多态.ppt

ID:48119881

大小:424.81 KB

页数:30页

时间:2019-05-06

动物类派生——继承与多态.ppt_第1页
动物类派生——继承与多态.ppt_第2页
动物类派生——继承与多态.ppt_第3页
动物类派生——继承与多态.ppt_第4页
动物类派生——继承与多态.ppt_第5页
资源描述:

《动物类派生——继承与多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章动物类派生——继承与多态能力目标:理解类的继承,能编写类及其派生子类。理解多态含义,理解上转型对象,能在子类中重写父类的同名方法。能运用继承与多态编写人类派生学生类、动物类派生马类等程序。内容介绍8.1任务预览8.2继承与派生8.3用protected声明受保护成员8.4关键字super8.5类类型变量赋值8.6多态性8.7本章小结8.8实训8:人类派生与动物类派生8.1任务预览本章实训程序运行结果:8.2继承与派生计算机世界与自然界一样,类之间也有继承和派生关系。运用继承与派生能达到代码重用、简化编程的目的。语法:[public][abstract][fina

2、l]class子类名extends父类{...}类的单一继承关系形成了清晰的层次结构,树状图如下:【例8-1】编写人类。再编写继承人类的学生类,学生类还拥有学号字段和学习方法。构造人类和学生类的对象,输出有关信息。classHuman1{//人类protectedStringname;protectedcharsex;protectedintage;publicHuman1(Stringname,charsex,intage){this.name=name;this.sex=sex;this.age=age;}publicvoidthink(){//思考方法Syste

3、m.out.println(name+"在思考...");}}classPupil1extendsHuman1{//继承人类的学生类protectedStringstuNo;//学号publicPupil1(StringstuNo,Stringname,charsex,intage){super(name,sex,age);this.stuNo=stuNo;}publicvoidlearn(){…}//学习方法}publicclassExample1{publicstaticvoidmain(String[]args){Human1person=newHuman1("

4、林冲",'男',30);person.think();System.out.println();Pupil1aPupil=newPupil1("001","李明",'男',6);aPupil.think();aPupil.learn();}}8.3用protected声明受保护成员关键字protected可修饰类的字段和方法,这些成员能被所有派生子类直接或间接继承。protected修饰的类成员,还能被类所在的包访问。在例8-1中,使用了关键字protected修饰人类Human1的name、sex和age字段。虽然protected可以修饰字段,但类的封装性要求除了

5、final常量字段外,其它字段一律应为private。故不可滥用protected修饰字段。【例8-2】按照类封装性要求改写例8-1,以保证字段为private。classHuman2{privateStringname;privatecharsex;privateintage;publicHuman2(Stringname,charsex,intage){…}protectedStringgetName(){…}publicvoidthink(){…}}classPupil2extendsHuman2{privateStringstuNo;publicPupil2(

6、…){…}publicvoidlearn(){…}}publicclassExample2{publicstaticvoidmain(String[]args){Human2person=newHuman2("林冲",'男',30);person.think();…Pupil2aPupil=newPupil2("001","李明",'男',6);aPupil.think();aPupil.learn();}}8.4关键字super8.4.1用super调用父类构造方法类如果没有显式声明构造方法,则自动生成无参数的默认构造方法。子类不继承父类的构造方法,因此,子类如果想

7、使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。【例8-3】编程,验证执行子类构造方法会自动调用父类的构造方法。classHuman3{publicHuman3(){System.out.println("构造了一个人");}}classPupil3extendsHuman3{publicPupil3(){//super();//相当于执行了本语句System.out.println("构造了一个学生");}}publicclassExample3{publicsta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。