文档详情

TP02-继承-ACCP-6.0-S2-3-使用Java实现面向对象编程-课件

沈***
实名认证
店铺
2024-12-11
PPT
2.05MB
约34页
TP02-继承-ACCP-6.0-S2-3-使用Java实现面向对象编程-课件_第1页
1/34
TP02-继承-ACCP-6.0-S2-3-使用Java实现面向对象编程-课件_第2页
2/34
TP02-继承-ACCP-6.0-S2-3-使用Java实现面向对象编程-课件_第3页
3/34

单击此处编辑母版文本样式,第二级,第三级,第四级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,单击此处编辑母版标题样式,继承,第二章,回顾及作业点评,如何从现实世界抽象出类?,构造方法的语法要求是什么?,static,和,final,的含义是什么?,请一位同学到白板上画出,Dog,类的类图预习检查,如何继承一个类?,使用继承有什么好处?,抽象类和抽象方法的特点是什么?,本章任务,优化电子宠物系统,实现汽车租赁系统计价功能,为什么使用继承,2-1,这两个类图有什么问题?,-name:String,-health:int,-love:int,-strain:String,Dog,+print():void,+getName():String,+getHealth,():int,+getLove():int,+getStrain:String,+Dog(),-name:String,-health:int,-love:int,-sex:String,Penguin,+print():void,+getName():String,+getHealth,():int,+getLove():int,+getSex():String,+Penguin(),使用继承优化设计,将重复代码抽取到父类中,为什么使用继承,2-2,使用继承优化后:,子类与父类是,is-a,关系,减少代码量,方便修改代码,如何使用继承,使用继承,编写父类,编写子类,继承父类,class Pet,/,公共的属性和方法,class Dog,extends,Pet,/,子类特有的属性和方法,class Penguin,extends,Pet,只能继承一个父类,继承关键字,对比,C#,用“,:”,理解继承,4-2,有些父类成员不能继承,private,成员,子类与父类不在同包,使用默认访问权限的成员,构造方法,演示示例:不能继承的情况,理解继承,4-3,访问修饰符,protected,可以修饰属性和方法,本类、同包、子类可以访问,访问修饰符总结,访问修饰符,本类,同包,子类,其他,private,默认,(friendly),protected,public,在何处使用继承,何时使用继承?,继承与真实世界类似,只要说,“,猫是哺乳动物,”,,猫的很多属性、行为,就不言自明了,藏獒是一种狗,继承是代码重用的一种方式,将子类都有的属性和行为放到父类中,符合,is-a,关系的设计使用继承,小结,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(int site),setSite(site);,public static void main(String args),Bus bus=new Bus(20);,bus.print();,载客量是,4,人,载客量是,20,人,方法重写,子类中有和父类相同签名的方法,会如何?,演示示例:断点调试,print(),方法,子类,重写,父类方法,指导,优化电子宠物系统,2-1,训练要点:,继承,子类重写父类方法,理解继承中的初始化过程,需求说明:,优化电子宠物系统,使用继承实现,Dog,类和,Penguin,类,打印宠物信息,讲解需求说明,指导,优化电子宠物系统,2-2,实现思路:,完成时间:,20,分钟,继承,抽象类,以下代码有什么问题?,Java,中也使用抽象类,限制实例化,Pet pet=new Pet(,贝贝,20,40);,pet.print();,实例化,Pet,没有意义,public,abstract,class Pet,在,C#,中通过抽象类实现,抽象方法,以下代码有什么问题?,abstract,也可用于方法,抽象方法,抽象方法没有方法体,抽象方法必须在抽象类里,抽象方法必须在子类中被实现,除非子类是抽象类,public,abstract,void print();,没有方法体,public abstract class Pet,public void print(),/,每个子类的实现不同,指导,抽象,Pet,类,2-1,训练要点:,抽象类的定义和继承,抽象方法定义和重写,需求说明:,修改,Pet,类为抽象类,修改,Pet,类的,print(),方法为抽象方法,输出,Dog,信息,讲解需求说明,final,用法,Penguin,类不希望再被其他类继承?,使用,final,类,方法不希望被重写?,使用,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;/,错误,,home,不可以再次赋值,最终版的属性值,共性问题集中讲解,常见调试问题及解决办法,代码规范问题,共性问题集中讲解,常见错误,请指出下面代码的错误,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,修饰引用型变量,变量的值是固定不变的,而变量所指向的对象的属性值是可变的,综合案例分析,2-1,发现类,发现类的属性,综合案例分析,2-2,发现类的方法,优化设计,编写程序入口,练习,编写测试代码运行,需求说明:,编写测试代码运行,完成时间:,5,分钟,总结,如何继承一个类?,继承有什么好处?,抽象类和抽象方法的特点是什么?,面向对象设计的步骤是什么?,作业,课后作业,必做,教员备课时在此添加内容,选做,教员备课时在此添加内容,提交时间:,xxx,提交形式:,xxx,预习作业,背诵英文单词,教员备课时在此添加内容,。

下载提示
相关文档
正为您匹配相似的精品文档