TP02继承.ppt

上传人:s****8 文档编号:69350477 上传时间:2023-01-02 格式:PPT 页数:31 大小:1.26MB
返回 下载 相关 举报
TP02继承.ppt_第1页
第1页 / 共31页
TP02继承.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《TP02继承.ppt》由会员分享,可在线阅读,更多相关《TP02继承.ppt(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、继继 承承承承回顾及作业点评如何从现实世界抽象出类?如何从现实世界抽象出类?构造方法的语法要求是什么?构造方法的语法要求是什么?static和和final的含义是什么?的含义是什么?请一位同学到白板上画出请一位同学到白板上画出Dog类的类图。类的类图。预习检查如何继承一个类?如何继承一个类?使用继承有什么好处?使用继承有什么好处?抽象类和抽象方法的特点是什么?抽象类和抽象方法的特点是什么?本章任务优化电子宠物系统优化电子宠物系统实现汽车租赁系统计价功能实现汽车租赁系统计价功能掌握继承的优点和实现掌握继承的优点和实现掌握子类重写父类方法掌握子类重写父类方法掌握继承下构造方法的执行过程掌握继承下构

2、造方法的执行过程掌握抽象类和抽象方法的使用掌握抽象类和抽象方法的使用掌握掌握final修饰属性、方法和类修饰属性、方法和类本章目标为什么使用继承 2-1这两个类图有什么问题?这两个类图有什么问题?-name:String-health:int-love:int-strain:StringDog+print():void+getName():String+getHealth():int+getLove():int+getStrain:String+Dog()-name:String-health:int-love:int-sex:StringPenguin+print():void+getNam

3、e():String+getHealth():int+getLove():int+getSex():String+Penguin()使用继承优化设计使用继承优化设计 将重复代码将重复代码抽取到父类抽取到父类中中为什么使用继承 2-2使用继承优化后:使用继承优化后:子类与父类是子类与父类是is-a关系关系 减少代码量减少代码量 方便修改方便修改代码代码 如何使用继承使用继承使用继承编写父类编写父类编写子类,继承父类编写子类,继承父类class Pet /公共的属性和方法公共的属性和方法class Dog extends Pet /子类特有的属性和方法子类特有的属性和方法class Penguin

4、 extends Pet 只能继承一个父类只能继承一个父类 继承关键字继承关键字 对比对比C#用用“:”理解继承4-1子类访问父类成员子类访问父类成员访问父类属性访问父类属性访问父类方法访问父类方法 使用使用super关键字关键字 super.name;super.print();演示示例:演示示例:super用法用法 super代表代表父类对象父类对象 理解继承4-2有些父类成员不能继承有些父类成员不能继承private成员成员 子类与父类不在同包,使用默认访问权限的成员子类与父类不在同包,使用默认访问权限的成员构造方法构造方法演示示例:不能继承的情况演示示例:不能继承的情况 理解继承4-3

5、访问修饰符访问修饰符protected可以修饰属性和方法可以修饰属性和方法本类、同包、子类可以访问本类、同包、子类可以访问访问修饰符总结访问修饰符总结 访问修饰符访问修饰符本类本类同包同包子类 其他其他private默认默认(friendly)protectedpublic理解继承4-4继承后的初始化顺序继承后的初始化顺序演示示例:断点追踪初始化过程演示示例:断点追踪初始化过程 父类属性父类属性 子类属性子类属性 父类构造方法父类构造方法 子类构造方法子类构造方法 在何处使用继承何时使用继承?何时使用继承?继承与真实世界类似继承与真实世界类似只要说只要说“猫是哺乳动物猫是哺乳动物”,猫的很多属

6、性、行为,猫的很多属性、行为 就不言自明了就不言自明了藏獒是一种狗藏獒是一种狗继承是代码重用的一种方式继承是代码重用的一种方式 将子类都有的属性和行为放到父类中将子类都有的属性和行为放到父类中 符合符合is-a关系的设计使用继承关系的设计使用继承 小结2-1继承使用什么关键字?继承使用什么关键字?子类可以继承父类的哪些成员?子类可以继承父类的哪些成员?使用继承有什么好处?使用继承有什么好处?小结2-2阅读代码,说出运行结果阅读代码,说出运行结果class Car private int site=4;/座位数座位数 Car()System.out.println(载客量是载客量是+site+人

7、人);public void setSite(int site)this.site=site;void print()System.out.print(载客量是载客量是+site+人人);class Bus extends Car Bus(int site)setSite(site);public static void main(String args)Bus bus=new Bus(20);bus.print();载客量是载客量是4人人载客量是载客量是20人人 方法重写子类中有和父类相同签名的方法,会如何?子类中有和父类相同签名的方法,会如何?演示示例:断点调试演示示例:断点调试print

8、()方法方法 子类子类重写重写父类方法父类方法 继承中的构造方法构造方法也会被重写吗?构造方法也会被重写吗?如何在子类中调用父类的构造方法?如何在子类中调用父类的构造方法?super();super(参数表参数表);演示示例:断点调试演示示例:断点调试super用法用法 可以被默可以被默认添加认添加 只能是构造方法只能是构造方法的第一条语句的第一条语句 不能被继承因此不能重写不能被继承因此不能重写 指导优化电子宠物系统2-1训练要点:训练要点:继承继承子类重写父类方法子类重写父类方法理解继承中的初始化过程理解继承中的初始化过程需求说明:需求说明:优化电子宠物系统优化电子宠物系统使用继承实现使用

9、继承实现Dog类和类和Penguin类类打印宠物信息打印宠物信息讲解需求说明讲解需求说明指导优化电子宠物系统2-2实现思路:实现思路:完成时间:完成时间:20分钟分钟继承继承 抽象类以下代码有什么问题?以下代码有什么问题?Java中也使用抽象类,限制实例化中也使用抽象类,限制实例化Pet pet=new Pet(贝贝贝贝,20,40);pet.print();实例化实例化Pet没没有意义有意义 public abstract class Pet 在在C#中通过抽象类实现中通过抽象类实现 抽象方法以下代码有什么问题?以下代码有什么问题?abstract也可用于方法也可用于方法抽象方法抽象方法抽象

10、方法没有方法体抽象方法没有方法体抽象方法必须在抽象类里抽象方法必须在抽象类里抽象方法必须在子类中被实现,除非子类是抽象类抽象方法必须在子类中被实现,除非子类是抽象类public abstract void print();没有方法体没有方法体 public abstract class Pet public void print()/每个子类的每个子类的实现不同实现不同指导抽象Pet类2-1训练要点:训练要点:抽象类的定义和继承抽象类的定义和继承抽象方法定义和重写抽象方法定义和重写 需求说明:需求说明:修改修改Pet类为抽象类类为抽象类修改修改Pet类的类的print()方法为抽象方法方法为抽

11、象方法输出输出Dog信息信息讲解需求说明讲解需求说明指导抽象Pet类2-2实现思路实现思路修改修改Pet类为抽象类,修改类为抽象类,修改print()为抽象方法为抽象方法Dog类继承类继承Pet类,实现类,实现print()方法方法运行测试运行测试注释掉注释掉Dog类中类中print()方法,运行测试类查看错误信方法,运行测试类查看错误信息息编写注释编写注释完成时间:完成时间:15分钟分钟final用法Penguin类不希望再被其他类继承?类不希望再被其他类继承?使用使用final类类方法不希望被重写?方法不希望被重写?使用使用final方法方法属性值不希望被修改?属性值不希望被修改?使用使用

12、final方法方法public final class Penguin extends Pet /最终版的类最终版的类 public final void print()/最终版的方法最终版的方法public class Penguin final String home=南极南极;/居住地居住地 public void setHome(String name)this.home=home;/错误,错误,home不可以再次赋值不可以再次赋值 最终版的属性值最终版的属性值常见错误请指出下面代码的错误请指出下面代码的错误class Dog String name;public Dog(String

13、 name)this.name=name;class Test public static void main(String args)final Dog dog=new Dog(欧欧欧欧);dog.name=美美美美;dog=new Dog(亚亚亚亚);使用使用final修饰引用型修饰引用型变量,变量不可以再指变量,变量不可以再指向另外的对象向另外的对象使用使用final修饰引用型变量,变量的值是固定不变修饰引用型变量,变量的值是固定不变的,而变量所指向的对象的属性值是可变的的,而变量所指向的对象的属性值是可变的综合案例某汽车租赁公司出租多种车辆,车型及租金情某汽车租赁公司出租多种车辆,车型

14、及租金情况如下:况如下:编写程序实现计算租赁价编写程序实现计算租赁价轿车轿车客车(金杯、金龙)客车(金杯、金龙)车型车型别克商务别克商务舱舱GL8宝马宝马550i别克林荫别克林荫大道大道16座座日租费日租费(元元/天天)6005003008001500综合案例分析2-1发现类发现类发现类的属性发现类的属性综合案例分析2-2发现类的方法发现类的方法优化设计优化设计编写程序入口编写程序入口练习编写MotoVehicle、Car、Bus类需求说明:需求说明:根据分析编写根据分析编写MotoVehicle、Car、Bus类类完成时间:完成时间:25分钟分钟练习编写测试代码运行需求说明:需求说明:编写测试代码运行编写测试代码运行完成时间:完成时间:5分钟分钟总结如何继承一个类?如何继承一个类?继承有什么好处?继承有什么好处?抽象类和抽象方法的特点是什么?抽象类和抽象方法的特点是什么?面向对象设计的步骤是什么?面向对象设计的步骤是什么?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com