已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计与系统开发,第3章面向对象设计思想,2,驱动任务一,创建一个抽象类Animal,它包含一个abstract的sound()方法;派生一个子类Dog,实现父类抽象方法sound();创建子类Dog对象,然后调用它的sound()方法。,3,目标及知识点,4,抽象类,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类,定义一个抽象类的格式如下,abstractclassAbstractClassName,publicabstractclassShapepublicabstractdoublearea();/抽象方法publicabstractdoublevolume();/抽象方法,当一个类被定义成abstract类时,表示一个抽象的概念,它不能用new关键字实例化对象,例如上面定义的Shape类就是一个抽象类,只有被继承并在子类中重写其抽象方法,它才有意义。,5,【例3-1】,定义一个代表形状的抽象类,并派生出圆柱体类和长方体类,计算底面半径为2高为3的圆柱体体积和长、宽、高分别为3、2、4的长方体体积。,/定义一个形状抽象类abstractclassShapedoubleradius,length,width,height;abstractdoublevol();/求体积的抽象方法Shape(doubler,doubleh)/对半径和高进行初始化的构造方法radius=r;height=h;Shape(doublel,doublew,doubleh)/对长宽高进行初始化的构造方法length=l;width=w;height=h;,/*圆柱体类*/classCircleextendsShapeCircle(doubler,doubleh)super(r,h);doublevol()/重写父类抽象方法return(3.1416*radius*radius*height);,/*长方体类*/classRectangleextendsShapeRectangle(doublel,doublew,doubleh)super(l,w,h);doublevol()/重写父类抽象方法return(length*width*height);,/*主类*/publicclassAbstractClassDemopublicstaticvoidmain(Stringargs)Circlec=newCircle(2,3);Rectangler=newRectangle(3,2,4);System.out.println(圆柱体体积=+c.vol();System.out.println(长方体体积=+r.vol();,结果:圆柱体体积37.6992长方体体积24.0,【思考】abstract修饰的类一定有abstract修饰的方法吗?,Java面向对象软件开发,6,最终类-final类,有一种类是不能派生出子类的,我们叫这种类为最终类。即我们用final来修饰的类。,publicfinalclassTest1,Java面向对象软件开发,7,最终类-final类,如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法,publicfinalvoidf2()System.out.println(f2);,Java面向对象软件开发,8,【例3-2】使用final方法的例子,classTest1publicvoidf1()System.out.println(f1);/无法被子类覆盖的方法publicfinalvoidf2()System.out.println(f2);,publicclassTest2extendsTest1publicvoidf1()System.out.println(Test1父类方法f1被覆盖!);publicstaticvoidmain(Stringargs)Test2t=newTest2();t.f1();t.f2();/调用从父类继承过来的final方法,结果:Test1父类方法f1被覆盖!f2,9,任务实现,分析类及关系,定义抽象类Animal,Dog类利用构造方法为type属性赋值,Dog类实现Animal的sound(),main方法进行测试,10,驱动任务二,有一个接口AddImp规定了有求和的方法sum();另外一个SubImp接口规定了有减法运算的方法subtract();再声明一个接口Calculatable继承于以上两个接口。创建Calculator类实现接口Calculatable,并生成对象测试该对象的加减功能。,11,目标及知识点,12,接口的定义,在Java语言中,用关键字interface来定义接口。接口与类有相似的结构,其定义格式如下:,修饰符interface接口名extends父接口名/接口体,13,接口的定义,例3-3InterfaceObjectAreadoublePI=3.14;doublearea(doubler);,注意:接口和普通类不一样的是它的方法默认是抽象和公共的,属性默认是常量,静态的和公共的,14,接口的实现,若一个类想统一在某个接口的规范下,想具有这个接口的”身份”,就需要实现这个接口。格式如下:,Class类名implements接口名,15,接口的实现,例3-4classCircleimplementsObjectAreapublicdoublearea(doubler)/重写returnPI*r*r;,注意:若实现接口的类不是抽象类,则该类必须实现指定接口的所有抽象方法。方法头部应该与接口中的定义完全一致,即有完全相同的方法名、参数表和返回值。,16,接口继承,接口也可以通过关键字extends继承其他接口。子接口将继承父接口中所有的常量和抽象方法。,Interface接口名extends接口名,17,接口继承,例3-5:interfaceAStringa=接口A中常量;voidshowA();interfaceBextendsAStringb=接口B中常量;voidshowB();,interfaceCextendsBStringc=接口C中常量;voidshowC();classInterfaceABCimplementsCpublicvoidshowA()/重写A接口中的方法System.out.println(a);publicvoidshowB()/重写B接口中的方法System.out.println(b);publicvoidshowC()/重写C接口中的方法System.out.println(c);,18,实现多接口,一个类可以同时实现多个接口,接口名之间用逗号间隔。,例3-6:interfaceAvoidmeth1();interfaceBvoidmeth2();classMyClassimplementsA,Bpublicvoidmeth1()System.out.pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低空经济产业服务业发展趋势报告
- 外出研学安全协议书
- 供应链管理合作协议书
- 2026-2031中国刮板式薄膜蒸发器行业市场发展深度调查及投资战略可行性报告
- 2025年艾滋病梅毒和乙肝母婴传播培训考试题附答案
- 2025年药物警戒质量管理规范培训试题附答案
- 保险代理从业人员资格考试模拟试题及解析
- 2025年物管员竞赛考试题及答案
- 煤矿专业基本知识考试题库附答案
- 2025传染病考试题及答案
- 统计资金管理制度
- 2025秋形势与政策-聚焦建设更高水平平安中国-课件
- 2025版GOLD慢性阻塞性肺疾病诊疗指南
- 龙江森工笔试试题及答案
- LARS人工韧带在国内的应用及技术提要
- 污水管网工程汇报
- 2025年全国大学生预防艾滋病竞赛题库附答案
- 企业软件开发质量保障体系建设方案
- 低空观光旅游航线在2025年的运营管理与成本控制
- 资产评估专业知识培训课件
- 高空坠落事故应急演练方案(脚本)
评论
0/150
提交评论