PPT16继承Java程序设计实战案例教程

上传人:ni****g 文档编号:568647597 上传时间:2024-07-25 格式:PPT 页数:14 大小:1.60MB
返回 下载 相关 举报
PPT16继承Java程序设计实战案例教程_第1页
第1页 / 共14页
PPT16继承Java程序设计实战案例教程_第2页
第2页 / 共14页
PPT16继承Java程序设计实战案例教程_第3页
第3页 / 共14页
PPT16继承Java程序设计实战案例教程_第4页
第4页 / 共14页
PPT16继承Java程序设计实战案例教程_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《PPT16继承Java程序设计实战案例教程》由会员分享,可在线阅读,更多相关《PPT16继承Java程序设计实战案例教程(14页珍藏版)》请在金锄头文库上搜索。

1、第4章 面向对象编程继 承情境引入 我们在做事情的时候,如果在现有一定基础之上再创作新的内容,就会比较轻松一些。 在程序开发中,我们怎样才能提高代码的可重用性,从而达到提高效率的目的呢?生活中的继承生活中,继承的例子随处可见3动物动物食草动物食草动物食肉动物食肉动物谁是父类?谁是父类?谁是子类?谁是子类?能说出继承的特点吗?能说出继承的特点吗?继承需要符合的关系:父类更通用、子类更具体继承需要符合的关系:父类更通用、子类更具体生活中的继承子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性4巴士是汽车吗?巴士是汽车吗?卡车是汽车吗?卡车是汽车吗?出租车是汽车吗?出租车是汽车吗?最大载客

2、数量最大载客数量报站报站引擎数量引擎数量外观颜色外观颜色刹车刹车加速加速汽车汽车最大载重量最大载重量卸货卸货所属公司所属公司最大载客数量最大载客数量打发票打发票属性属性行为行为请问:出租车请问:出租车包含哪些属性包含哪些属性和行为呢?和行为呢?为什么需要继承?开发教师类,其中教师分为Java教师以及.NET教师,各自的要求如下:Java教师属性:姓名、所属教研室方法:授课(步骤:打开Eclipse、实施理论课授课)、自我介绍.NET教师属性:姓名、所属教研室方法:授课(步骤:打开Visual studio 2005、实施理论课授课)、自我介绍5请问:以下这个解决方案中存在着什么问题?6publ

3、ic class DotNetTeacher private String name; / 教师姓名教师姓名private String department; / 教研室教研室public DotNetTeacher(String myName, String myDepat) name = myName; department = myDepart;public void giveLession()System.out.println(启动启动 Visual Studio 2005);System.out.println(知识点讲解知识点讲解);System.out.println(总结提

4、问总结提问); public void introduction() System.out.println(大家好!我是大家好!我是 +department+ 的的 + name + .); public class JavaTeacher private String name; / 教师姓名教师姓名private String department; / 教研室教研室public JavaTeacher(String myName, String myDepart) name = myName; department= myDepart;public void giveLession()S

5、ystem.out.println(启动启动 Eclipse);System.out.println(知识点讲解知识点讲解);System.out.println(总结提问总结提问);public void introduction() System.out.println(大家好!我是大家好!我是 + department + 的的 + name + .); 代码存在重复,违背了代码存在重复,违背了“write once, only once”的原则的原则 如何改进?有没有可能建立继承关系,让子类自动继承父类的属性和方法?7Java教师是教师吗?教师是教师吗?.NET教师是教师吗?教师是教师

6、吗?public class Teacher private String name; / 教师姓名教师姓名private String department; / 教研室教研室public Teacher(String myName, String myDepart) name = myName;department = myDepart;public void giveLesson()System.out.println(知识点讲解知识点讲解);System.out.println(总结提问总结提问); public void introduction() System.out.print

7、ln(大家好!我是大家好!我是“ + department + 的的 + name + 。); 现在,所有子类中相同的代码现在,所有子类中相同的代码都抽取到父类中了都抽取到父类中了 属属性性行行为为姓名姓名教研室教研室授课授课自我介绍自我介绍教师教师Java教师教师.NET教师教师为什么需要继承 4-48public class JavaTeacher2 extends Teacher public JavaTeacher2(String myName, String myDepart) super(myName, myDepart);public void giveLesson()Syste

8、m.out.println(启动启动 Eclipse);super.giveLesson();public class DotNetTeacher2 extends Teacher public DotNetTeacher2(String myName, String myDepart) super(myName, myDepart);public void giveLesson()System.out.println(启动启动 Visual Studio .NET);super.giveLesson();使用继承,可以有效实现代码复用使用继承,可以有效实现代码复用子类自动继承父类的属性子类自

9、动继承父类的属性和方法,子类中不再存在和方法,子类中不再存在重复代码重复代码如何实现继承?在在Java语言中,用语言中,用extends关键字关键字来表示一个类继承了另来表示一个类继承了另一个类,例如:一个类,例如:9public class JavaTeacher2 extends AccpTeacher /其余代码省略其余代码省略在父类中只定义一些通用的属性与方法,例如:public class Teacher private String name; / 教师姓名教师姓名private String department; / 所在教研室所在教研室public Teacher(Strin

10、g myName, String myDepart) /初始化属性值初始化属性值public void giveLesson() /授课方法的具体实现授课方法的具体实现 public void introduction() /自我介绍方法的具体实现自我介绍方法的具体实现 如何实现继承子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法10public class Teacher String name; / 教师姓名教师姓名String department;/ 所在教研室所在教研室public Teacher (String myName, String myDepart) /初始化

11、属性值初始化属性值public void giveLesson() /授课方法的具体实现授课方法的具体实现 public void introduction() /自我介绍方法的具体实现自我介绍方法的具体实现 public class JavaTeacher2 extends Teacher public JavaTeacher2(String myName, String myDepart) super(myName, myDepart);public void giveLesson()System.out.println(启动启动Eclipse);super.giveLesson();由于

12、由于giveLesson()方法与方法与父类的实现有所不同,因此父类的实现有所不同,因此重写了该方法重写了该方法 方法重写:子类和父类的方法具有相同的名称、参数列表、返回类型方法重写:子类和父类的方法具有相同的名称、参数列表、返回类型 父类中的属性和方法可父类中的属性和方法可以被子类继承以被子类继承如何实现继承?子类的构造方法中,通过super关键字调用父类的构造方法11public class JavaTeacher2 extends Teacher public JavaTeacher2(String myName, String myDepart) super(myName, myDep

13、art);方法重写后,通过super关键字调用父类的方法public class JavaTeacher2 extendsTeacher public void giveLesson()System.out.println(启动启动 Eclipse);super.giveLesson();通过调用父类的构造方法,通过调用父类的构造方法,完成对属性值的初始化完成对属性值的初始化一切类的“祖先”Object在Java 中,所有的Java类都直接或间接地继承了java.lang.Object类12public class MyObject /public class MyObect extends Object /在在Eclipse中调用中调用MyObject对象的成员,会自动弹出继对象的成员,会自动弹出继承自承自Object的所有方法的所有方法小结 1请编码实现动物世界的继承关系:动物(Animal)具有行为:吃(eat)、睡觉(sleep)动物包括:兔子(Rabbit),老虎(Tiger)这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。请通过继承实现以上需求,并编写测试类AnimalTest进行测试。 13感 谢 观 看

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号