《第4章面向对象下补充案例.docx》由会员分享,可在线阅读,更多相关《第4章面向对象下补充案例.docx(31页珍藏版)》请在金锄头文库上搜索。
1、精选文档博学谷让IT授课更简单,让IT学习更有效第四章增补事例事例4-1类的继承一、事例描述1、核查知识点编号:00104001名称:类的继承2、练习目标认识类继承的意义和作用掌握如何实现类的继承3、需求分析在程序中,继承描述的是事物之间的所属关系,经过继承可以使多种事物之间形成一种关系系统。为了让初学者熟习类的继承,本事例将演示类的继承并编写测试类考据子类可否拥有父类的可继承成员。4、设计思路(实现原理)1)设计两个类Student和Teacher2)抽取两个类共同的内容(如:吃饭、睡觉)封装到一个类Person中,各自独有的部分保留在各自类中。3)让学生类继承Person类,老师类也继承P
2、erson。4)编写测试类Example01,测试Student类和Teacher可否继承了Person类的成员。二、事例实现1、抽取父类Person,实现继承关系,代码以下:classPersonStringname;/姓名/吃饭的功能voideat()System.out.println(吃饭);/睡觉的功能voidsleep()System.out.println(睡觉);classStudentextendsPerson301博学谷让IT授课更简单,让IT学习更有效学号intsid;classTeacherextendsPerson工号inttid;授课的功能voidteach()Sy
3、stem.out.println(老师授课);2、定义测试类Example01,代码以下:publicclassExample01publicstaticvoidmain(Stringargs)Students=newStudent();s.eat();s.sleep();System.out.println(-);Teachert=newTeacher();t.eat();t.sleep();t.teach();运转结果如图4-1所示。图4-1运转结果三、事例总结1、在Java中,多个类可以继承一个父类,但是一个类不可以直接继承多个类,一个类只好有一个直接父类。2、父类是由子类不停抽取而来的
4、,不停地抽取就形成了系统构造,这个构造称为继承系统构造。3、子类在继承父类的时候,会自动拥有父类全部的成员。2博学谷让IT授课更简单,让IT学习更有效4、继承的好处是划分了类的层次性,实现了代码重用、扩展了程序功能。事例4-2方法的重写一、事例描述1、核查知识点编号:00104002名称:方法的重写2、练习目标认识方法重写的意义和作用掌握如何进行方法重写3、需求分析在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些更正,即对父类的方法进行重写。为了让初学者掌握方法的重写,本事例将编写一个类NewPhone,该类继承Phone类并对Phone类的call()方法
5、进行重写。4、设计思路(实现原理)1)定义一个类Phone,编写方法call(),表示打电话功能2)定义一个Phone的子类NewPhone,重写父类call()方法,让它除了打电话功能外还拥有开启语言和关闭语言功能。3)编写一个测试类Example02,分别调用重写前和重写后的call()方法二、事例实现1、定义Phone及其子类NewPhone,子类对父类中的call()方法重写,代码以下:classPhonevoidcall()System.out.println(打电话);classNewPhoneextendsPhonevoidcall()System.out.println(开启语
6、音);super.call();System.out.println(关闭语音);2、定义测试类Example02,代码以下:publicclassExample02publicstaticvoidmain(Stringargs)System.out.println(-重写前-);Phonephone=newPhone();3博学谷让IT授课更简单,让IT学习更有效phone.call();System.out.println(-重写后-);PhonenewPhone=newNewPhone();newPhone.call();运转结果如图4-2所示。图4-2运转结果三、事例总结1、子类中需要
7、对继承自父类的方法进行一些更正,这时就用到方法重写。2、在子类中重写的方法需要和父类被重写的方法拥有同样的方法名、参数列表以及返回值种类。3、子类方法的接见修饰权限不可以小于父类的。4、重写的主要长处是可以定义子类独有的特色。事例4-3super接见父类成员变量一、事例描述1、核查知识点编号:00104003名称:super重点字2、练习目标掌握使用super重点字接见父类成员变量3、需求分析子类可以继承父类的非私有成员变量,若是在子类中更正了继承自父类的成员变量的值,再想要接见父类的该成员变量时,可以经过super.成员变量来实现。为了让初学者熟习super重点字的用法,本事例将分别设计Fu
8、类及其子类Zi,并在Zi类的方法中使用super重点字接见Fu类的成员变量。4、设计思路(实现原理)1)编写一个Fu类,在类中定义无参构造和一个初始值为20的num成员变量。2)Zi类继承Fu类,在子类中对num值进行了更正,同时在子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super重点字调用了Fu类的num成员变量。3)定义测试类Example03。4博学谷让IT授课更简单,让IT学习更有效二、事例实现1、编写Fu类及其子类Zi,在Zi类中使用super重点字调用Fu类成员变量,代码以下classFuFu()intnum=20;classZiexten
9、dsFuZi()intnum=30;/更正num的值voidmethod()System.out.println(method);/super重点字调用父类成员变量System.out.println(Fu类中num值为:+super.num);System.out.println(Zi类中num值为:+num);2、定义测试类Example03,代码以下:classExample03publicstaticvoidmain(Stringargs)Ziz=newZi();z.method();运转结果如图4-3所示。图4-3运转结果三、事例总结1、使用super重点字调用父类的成员方法。详尽格
10、式以下:super.成员变量2、被调用的父类成员变量,必定是非private的。5博学谷让IT授课更简单,让IT学习更有效事例4-4super接见父类成员方法一、事例描述1、核查知识点编号:00104003名称:super重点字2、练习目标掌握使用super重点字接见父类成员方法3、需求分析子类重写父类的方法后,子类对象将没法接见父类被重写的方法,为认识决这个问题,在Java中特意供应了一个super重点字用于接见父类的成员。为了让初学者熟习super重点字的用法,本事例将分别设计Fu类及其子类Zi,在Zi类的方法中使用super重点字接见Fu类的成员方法。4、设计思路(实现原理)1)编写一个
11、Fu类,在类中定义无参构造和一个无返回值的show()方法。2)Zi类继承Fu类,子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super重点字调用了Fu类的show()方法。3)定义测试类Example04。二、事例实现1、编写Fu类及其子类Zi,在Zi类中使用super重点字调用Fu类成员方法,代码以下:classFuFu()voidshow()System.out.println(Fushow);classZiextendsFuZi()voidmethod()System.out.println(Zimethod);/super重点字调用父类成员方法s
12、uper.show();2、定义测试类Example04,代码以下:classExample04publicstaticvoidmain(Stringargs)Ziz=newZi();z.method();6博学谷让IT授课更简单,让IT学习更有效运转结果如图4-4所示。图4-4运转结果三、事例总结1、使用super重点字调用父类的成员方法。详尽格式以下:super.成员方法(参数1,参数2)2、被调用的父类成员方法,必定是非private的。事例4-5super接见父类构造方法一、事例描述1、核查知识点编号:00104003名称:super重点字2、练习目标掌握如何在子类构造方法中使用sup
13、er重点字接见父类构造方法3、需求分析在子类的构造方法中必定会调用父类的某个构造方法,若是想指定调用类父类中的哪个构造方法,可以使用super重点字来实现。为了让初学者掌握super重点字的用法,本事例将分别设计Fu类及其子类Zi,在Zi类的构造方法中使用super重点字接见Fu类的构造方法。4、设计思路(实现原理)1)编写一个Fu类,在类中定义无参构造。2)Zi类继承Fu类,子类中也定义无参构造方法,在构造方法中使用super重点字调用Fu类的构造方法。3)定义测试类Example05。二、事例实现1、编写Fu类及其子类Zi,在Zi类构造中使用super重点字调用Fu类构造方法,代码以下:c
14、lassFuFu()System.out.println(Fu类构造方法!);7博学谷让IT授课更简单,让IT学习更有效classZiextendsFuZi()super();/在子类构造中调用父类构造System.out.println(Zi类构造方法!);2、定义测试类Example05,代码以下:publicclassExample05publicstaticvoidmain(Stringargs)Zizi=newZi();运转结果如图4-5所示。图4-5运转结果三、事例总结1、经过super调用父类构造方法的代码必定位于子类构造方法的第一行,而且只好出现一次。2、在子类的构造方法中经过super指定调用父类的哪个构造方法,若是没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。3、被调用的父类构造方法,必定是非private的。事例4-6final修饰类一、事例描述1、核查知识点编号:00104004名称:final重点字2、练习目标认识final重点字修饰类的特色掌握final重点字修饰类的用法3、需求分析Java中的类被final重点字修饰后,该类将不可以够被继承,也就是不可以够派生子类。为了让初学者熟习final重点字修饰类的用法,本事例将分别设计两个