Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt

Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt

ID:50325277

大小:628.50 KB

页数:92页

时间:2020-03-08

Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt_第1页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt_第2页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt_第3页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt_第4页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt_第5页
资源描述:

《Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第4章 继承与多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章继承与多态主讲人:程裕强本章学习目标理解继承机制掌握Java类的继承定义掌握子类对象的构造过程掌握不同权限符的继承性掌握成员覆盖,重点是方法重写掌握final用法理解多态概念,掌握两种方法多态掌握抽象类的定义与使用掌握接口的定义与实现,理解接口与抽象类的异同掌握抽象类与接口相关的方法多态掌握Object类阅读三个改进的数据结构类了解匿名类4.1引例在第3章我们运用面向对象的思想定义了5个版本的Person类,成功得将Person的属性和操作封装起来。实际上,Person类具有许多属性和方法,比如人具有身份证

2、号、性别、民族等属性,代码如下。假设现在需要定义一个学生类型,除了具有人的属性外,还具有学号、专业、班级等属性,Student类代码如下。publicclassPerson{//人的属性publicStringpid;//身份证号publicStringname;//姓名publicbooleansex;//性别publicintage;//年龄publicintnation;//民族publicStringaddress;//地址//构造器publicPerson(){}publicPerson(基本参数{..

3、.}publicPerson(全部参数){...}//人的一个行为动作publicvoidspeak(){//说话...}}publicclassStudent{//人一般属性publicStringname;//姓名publicbooleansex;//性别publicintage;//年龄publicStringpid;//身份证号publicintnation;//民族publicStringaddress;//地址//学生特有的属性publicStringsid;//学号publicStringmajor

4、;//专业publicStringschool;//学校publicStringclassname;//班级//构造器publicStudent(){}publicStudent(基本参数){...}publicStudent(全部参数){...}//人的一般方法publicvoidspeak(){//说话...}//学生特有操作publicvoidstudy(){//学习...}}从上面的代码很容易发现,Student类与Person类代码重复过多。再假设现在需要定义“研究生”类,那么属性定义要分为“人的属性”

5、、“学生的属性”和“研究生”专有属性。重复的代码会更多。学生是一类特殊的人,具备人的基本属性和功能,所以Student类应该是一个特殊的Person类。每当出现一个新概念时,我们只能从零开始创建这个类吗?是否可以在现有类的基础上创建新的类呢,如何才能更好的实现代码复用?这些问题摆在我们面前,如何解决呢?4.2继承机制在现实世界许多新生事物并不是凭空产生的,往往是建立在原有事物基础上的。比如我们今天使用的汉字就是继承甲骨文发展而来的,无线电话是建立在有线电话基础上的,相对论继承发展了经典力学等等。继承发展是自然界(

6、包括人类社会)的一大自然规律,新的发展不是对前者的否定,而是继承与发展,这与唯物辩证法是一致的。Java是面向对象的语言,具有继承机制。继承是根据现有类创建新的类的机制,由继承而得到的新类称为子类或派生类,被继承的类称为父类或者基类。子类可以从父类继承属性和方法。Java是单继承,也就是只有一个父类,所以关键字extends是第三人称单数。如一个类的定义没有使用extends,系统默认该类继承Object类。也就是Java中所有的类都是Object类的子类。类继承格式如下修饰符class子类名extends父类名

7、{类成员;}运用Java继承机制来改进引例中的Student类publicclassStudent2extendsPerson{//学生的属性publicStringsid;//学号publicStringmajor;//专业publicStringschool;//学校publicStringclassname;//班级//构造器publicStudent2(){}publicStudent2(基本参数){super(pid,name,sex,age,nation,address);}publicStudent

8、2(全部参数){this(pid,name,sex,age,nation,address);this.sid=sid;this.major=major;this.school=school;this.classname=classname;}publicvoidstudy(){System.out.println("我在攻读"+major+"专业");}}可以发现Stud

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

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

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