ACCP7.0S2Java面向对象编程

上传人:宝路 文档编号:47871176 上传时间:2018-07-05 格式:PPTX 页数:38 大小:1.55MB
返回 下载 相关 举报
ACCP7.0S2Java面向对象编程_第1页
第1页 / 共38页
ACCP7.0S2Java面向对象编程_第2页
第2页 / 共38页
ACCP7.0S2Java面向对象编程_第3页
第3页 / 共38页
ACCP7.0S2Java面向对象编程_第4页
第4页 / 共38页
ACCP7.0S2Java面向对象编程_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《ACCP7.0S2Java面向对象编程》由会员分享,可在线阅读,更多相关《ACCP7.0S2Java面向对象编程(38页珍藏版)》请在金锄头文库上搜索。

1、继承第二章回顾及作业点评如何从现实世界抽象出类? 方法重载的规则有哪些? 如何实现封装?提问2/38预习检查如何继承一个类? 使用继承有什么好处? 抽象类和抽象方法的特点是什么?提问3/38本章任务优化电子宠物系统 实现汽车租赁系统计价功能4/38本章目标掌握继承的优点和实现 掌握子类重写父类方法 掌握继承下构造方法的执行过程 掌握抽象类和抽象方法的使用 掌握final修饰属性、方法和类5/38为什么使用继承 2-1这两个类图有什么问题?- name:String- health:int- love:int- strain:StringDog+ print():void+ getName():

2、String+ getHealth ():int+ getLove():int+ getStrain:String+ Dog()- name:String- health:int- love:int- sex:StringPenguin+ print():void+ getName():String+ getHealth ():int+ getLove():int+ getSex():String+ Penguin()将重复代码 抽取到父类中问题使用继承优化设计6/38为什么使用继承 2-2使用继承优化后:减少代码量 方便修改代码 子类与父类是is-a关系7/38如何使用继承使用继承 编写父类

3、编写子类,继承父类class Pet /公共的属性和方法 class Dog extends Pet /子类特有的属性和方法class Penguin extends Pet 只能继承一个父类 继承关键字 C#用“ : ” 对比8/38理解继承4-1子类访问父类成员 访问父类构造方法访问父类属性访问父类方法使用super关键字, super代表父类对象 super.name;super.print();演示示例1:使用继承优化电子宠物系统super(); super(name);在子类构造方法中调用且 必须是第一句9/38理解继承4-2子类可以继承父类的所有些资源吗?演示示例2:不能被继承的情

4、况 提问构造方法子类与父类不在同包, 使用默认访问权限的成员private成员 不能被继承的父类成员10/38理解继承4-3访问修饰符protected可以修饰属性和方法 本类、同包、子类可以访问 访问修饰符总结访问修饰符本类同包子类 其他private默认(friendly)protectedpublic11/38理解继承4-4多重继承关系的初始化顺序是怎样的?演示示例3:断点追踪初始化过程 子类构造 方法 子类属性父类构造 方法父类属性 提问12/38在何处使用继承何时使用继承? 继承与真实世界类似 只要说“猫是哺乳动物”,猫的很多属性、行为就不言自明了 藏獒是一种狗继承是代码重用的一种方

5、式将子类共有的属性和行为放到父类中 符合is-a关系的设计使用继承 问题13/38小结2-1继承使用什么关键字? 子类可以继承父类的哪些成员? 使用继承有什么好处?提问14/38小结2-2阅读代码,说出运行结果class Car private int site = 4; /座位数Car()System.out.println (“载客量是“+site+“人);public void setSite(int site)this.site = site;void print()System.out.print(“载客量是“+site+“人“); class Bus extends Car Bus

6、(int site)setSite(site); public static void main(String args) Bus bus = new Bus(20);bus.print(); 载客量是4人 载客量是20人 代码阅读15/38方法重写使用继承后效果子类重写父类方法 问题调用父类的print()方法, 不能显示Dog的strain信 息和Peguin的sex信息如何实现如下效果呢?演示示例4:使用重写优化电子宠物系统 16/38小结2-1构造方法也会被重写吗? 方法重写的规则 方法名相同 参数列表相同 返回值类型相同或者是其子类; 访问权限不能严于父类 方法重载与方法重写提问不能

7、被继承, 因此不能重写位置方法名参数表返回值访问修饰符方法重写子类相同相同相同或是 其子类不能比父类更 严格方法重载同类相同不相同无关无关17/38小结2-2super关键字来访问父类的成员 super只能出现在子类的方法和构造方法中 super调用构造方法时,只能是第一句 super不能访问父类的private成员18/38学员操作优化电子宠物系统2-1训练要点: 继承 子类重写父类方法 理解继承中的初始化过程 需求说明: 优化电子宠物系统 使用继承实现Dog类和Penguin类 打印宠物信息指导讲解需求说明19/38学员操作优化电子宠物系统2-2实现思路:继承 指导完成时间:20分钟 20

8、/38共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解共性问题集中讲解21/38抽象类以下代码有什么问题?Java中也使用抽象类,限制实例化Pet pet = new Pet (“贝贝“,20,40);pet.print();实例化Pet没有意义 public abstract class Pet 在C#中通过抽象类实现问题22/38抽象方法以下代码有什么问题?abstract也可用于方法抽象方法抽象方法没有方法体 抽象方法必须在抽象类里 抽象方法必须在子类中被实现,除非子类是抽象类public abstract void print();没有方法体 public abs

9、tract class Pet public void print() /每个子类的实现不同问题23/38学员操作抽象Pet类2-1训练要点: 抽象类的定义和继承 抽象方法定义和重写 需求说明: 修改Pet类为抽象类 修改Pet类的print()方法为抽象方法 输出Dog信息指导讲解需求说明 24/38学员操作抽象Pet类2-2实现思路 修改Pet类为抽象类,修改print()为抽象方法 Dog类继承Pet类,实现print()方法 运行测试 注释掉Dog类中print()方法,运行测试类查看错误 信息 编写注释指导完成时间:15分钟25/38共性问题集中讲解常见问题及解决办法代码规范问题调试

10、技巧共性问题集中讲解共性问题集中讲解26/38final用法Penguin类不希望再被其他类继承? 使用final类方法不希望被重写? 使用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; /错误,不可再赋值 最终版的属性值问题27/38常见错误

11、请指出下面代码的错误class Dog String name;public Dog(String name) this.name = name; class Test public static void main(String args) final Dog dog = new Dog(“欧欧“);dog.name = “美美“;dog = new Dog(“亚亚“); 使用final修饰引用型变量, 变量不可以再指向另外的对象使用final修饰引用型变量,变量的值是固定不变的, 而变量所指向的对象的属性值是可变的28/38综合案例某汽车租赁公司出租多种车辆,车型及租金情 况如下:编写程序

12、实现计算租赁价问题轿车客车(金杯、金龙 )车型别克商务 舱GL8宝马 550i别克林 荫大道16座日租费 (元/天)600500300800150029/38综合案例分析2-1发现类发现类的属性分析30/38综合案例分析2-2发现类的方法优化设计编写程序入口分析31/38学员操作编写MotoVehicle、Car、Bus类需求说明: 根据分析编写MotoVehicle、Car、Bus类练习完成时间:25分钟32/38学员操作编写测试代码运行需求说明: 编写测试代码运行练习完成时间:5分钟33/38共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解共性问题集中讲解34/38总

13、结2-1继承 符合is-a关系 使用extends关键字 代码复用 方法重写的规则 方法名相同 参数列表相同 返回值类型相同或者是其子类 访问权限不能严于父类 super关键字来访问父类的成员 super只能出现在子类的方法和构造方法中 super调用构造方法时,只能是第一句 super不能访问子类的private成员35/38总结2-2抽象类和抽象方法 抽象类不能被实例化 可以有0多个抽象方法 非抽象类必须重写父类的所有抽象方法 final修饰符修饰的类,不能再被继承 修饰的方法,不能被子类重写 修饰的变量将变成常量,只能在初始化时进行赋值36/38作业课后作业 教员备课时根据班级情况在此添加内容,应区分必 做、选做内容,以满足不同层次学员的需求预习作业 预习目标 了解什么是多态及如何实现多态。 预习下一章学生用书,完成预习作业37/3838/38

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

当前位置:首页 > 中学教育 > 教学课件

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