版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计面向对象程序设计与系统开发与系统开发第3章 面向对象设计思想 2驱动驱动任务一任务一 创建一个抽象类animal,它包含一个abstract的sound()方法;派生一个子类dog,实现父类抽象方法sound();创建子类dog对象,然后调用它的sound()方法。3目标及知识点目标及知识点定义和使用抽象类定义和使用抽象类2final关关键键字的使用字的使用3抽象类的概念抽象类的概念1 14抽象类抽象类 如果一个类中没有包含足够的信息来描绘一个具如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类体的对象,这样的类就是抽象类 定义一个抽象类的格式如下 abst
2、ract class abstractclassnamepublic abstract class shapepublic abstract double area();/抽象方法抽象方法public abstract double volume();/抽象方法抽象方法 当一个类被定义成当一个类被定义成abstract类时,表示一个抽象的概念,它不能用类时,表示一个抽象的概念,它不能用new关键字关键字实例化对象,例如上面定义的实例化对象,例如上面定义的shape类就是一个抽象类,只有被继承并在子类类就是一个抽象类,只有被继承并在子类中重写其抽象方法,它才有意义。中重写其抽象方法,它才有意义。
3、 5【例例3-1】 v 定义一个代表形状的抽象类,并派生出圆柱体类和长方体类,计算底面半径为2高为3的圆柱体体积和长、宽、高分别为3、2、4的长方体体积。 /定定义义一个形状抽象一个形状抽象类类abstract class shapedouble radius,length,width,height;abstract double vol();/求体求体积积的抽象方法的抽象方法shape(double r,double h)/对半径和高进行初始化的构造方法对半径和高进行初始化的构造方法radius = r;height = h;shape(double l,double w,double h)
4、/对长宽高进行初始化的构造方法对长宽高进行初始化的构造方法length = l;width = w;height = h;/*圆圆柱体柱体类类*/class circle extends shapecircle(double r,double h)super(r,h);double vol()/重写父重写父类类抽象方法抽象方法return(3.1416*radius*radius*height); /*长长方体方体类类*/class rectangle extends shaperectangle(double l,double w,double h)super(l,w,h);double v
5、ol()/重写父重写父类类抽象方法抽象方法return (length*width*height);/*主主类类*/public class abstractclassdemo public static void main(string args) circle c = new circle(2,3); rectangle r = new rectangle(3,2,4); system.out.println(圆圆柱体体柱体体积积 = + c.vol(); system.out.println(长长方体体方体体积积 = + r.vol();结结果:果:圆柱体体积圆柱体体积37.6992长方
6、体体积长方体体积24.0【 【思考思考】 】abstract修修饰饰的的类类一定有一定有abstract修修饰饰的方法的方法吗吗?java面向对象软件开发6最终类-final类 有一种类是不能派生出子类的,我们叫这种类为最有一种类是不能派生出子类的,我们叫这种类为最终类。即我们用终类。即我们用final来修饰的类。来修饰的类。public final class test1 java面向对象软件开发7最终类-final类 如果一个类不允许其子类覆盖某个方法,则可以把这个如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为方法声明为final方法方法 public final void f
7、2() system.out.println(f2);java面向对象软件开发8【例例3-2】 使用使用final方法的例子方法的例子class test1 public void f1() system.out.println(f1);/ 无法被子无法被子类类覆盖的方法覆盖的方法public final void f2() system.out.println(f2);public class test2 extends test1public void f1() system.out.println(test1父父类类方法方法f1被覆盖被覆盖!);public static void ma
8、in(string args) test2 t = new test2();t.f1();t.f2(); / 调调用从父用从父类继类继承承过过来的来的final方法方法结结果:果:test1父父类类方法方法f1被覆盖被覆盖!f29任务实现任务实现123分析类及关系分析类及关系 定义抽象类定义抽象类animal dog类类利用构造方法利用构造方法为为type属性属性赋值赋值 45dog类实现类实现animal的的sound() main方法方法进进行行测试测试 10驱动驱动任务任务二二 有一个接口addimp规定了有求和的方法sum();另外一个subimp接口规定了有减法运算的方法subtra
9、ct();再声明一个接口calculatable继承于以上两个接口。创建calculator类实现接口calculatable,并生成对象测试该对象的加减功能。11目标及知识点目标及知识点接口的实现接口的实现 2接口的继承接口的继承 3多接口多接口4接口的定义接口的定义1 112接口的定义接口的定义在java语言中,用关键字interface来定义接口。接口与类有相似的结构,其定义格式如下:修修饰饰符符 interface 接口名接口名 extends父接口名父接口名/接口体接口体 13接口的定义接口的定义例例3-3interface objectarea double pi =3.14; d
10、ouble area(double r); 注意:注意:接口和普通类不一样的是它的方法默认是抽象和公共的,接口和普通类不一样的是它的方法默认是抽象和公共的,属性默认是常量,静态的和公共的属性默认是常量,静态的和公共的14接口的实现接口的实现 若一个类想统一在某个接口的规范下,想具有这个接口的”身份”,就需要实现这个接口。格式如下:class 类类名名 implements 接口名接口名接口的实现接口的实现15例例3-4class circle implements objectareapublic double area(double r)/重写重写return pi*r*r;注意:注意:若实
11、现接口的类不是抽象类,则该类必须实现指定接口的若实现接口的类不是抽象类,则该类必须实现指定接口的所有抽象方法。方法头部应该与接口中的定义完全一致,即所有抽象方法。方法头部应该与接口中的定义完全一致,即有完全相同的方法名、参数表和返回值。有完全相同的方法名、参数表和返回值。16接口继承接口继承 接口也可以通过关键字extends继承其他接口。子接口将继承父接口中所有的常量和抽象方法。interface 接口名接口名 extends 接口名接口名 接口继承接口继承17例例3-5:interface astring a = 接口接口a中常量中常量;void showa(); interface b
12、extends astring b = 接口接口b中常量中常量;void showb();interface c extends bstring c = 接口接口c中常量中常量;void showc(); class interfaceabc implements cpublic void showa()/重写重写a接口中的方法接口中的方法system.out.println(a);public void showb()/重写重写b接口中的方法接口中的方法system.out.println(b);public void showc()/重写重写c接口中的方法接口中的方法system.out.println(c);实现多接口18一个一个类类可以同可以同时实现时实现多个接口,接口名之多个接口,接口名之间间用逗号用逗号间间隔。隔。例例3-6:interface a void meth1(); interface b void meth2();class myclass implements a,b public void meth1() system.out.print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度节能环保冷库库板安装与改造合同2篇
- 2024年度保险合同标的:人寿保险与意外伤害保险3篇
- 安州区房屋防水合同范例
- 2024年度房产销售溢价增值服务合同3篇
- 系统门窗合同范例
- 2024年度图书租赁合同2篇
- 2024年度供应链管理优化咨询项目服务合同3篇
- 2024年房地产投资合作开发与销售合同3篇
- 2024年度建筑工程设计合同书含施工图和技术交底2篇
- 2024年度互联网医疗数据保密及患者隐私保护协议3篇
- 国家开放大学《管理英语2》综合练习参考答案
- 2024年中国人寿财产保险股份有限公司招聘笔试参考题库含答案解析
- 教师企业实践总结汇报
- 抖音快手区别分析报告
- 全生命周期成本管理与优化
- 质量损失培训课件
- 《维修车间管理》课件
- 北京市海淀区101中学2023年数学七年级第一学期期末经典试题含解析
- 高处作业吊篮危险源辨识及风险评价表
- 房地产开发项目 水土保持方案
- 八年级历史上册 第一学期期末考试卷(人教福建版)
评论
0/150
提交评论