《抽象类和接口》ppt课件

《抽象类和接口》ppt课件

ID:40126271

大小:520.55 KB

页数:40页

时间:2019-07-22

《抽象类和接口》ppt课件_第1页
《抽象类和接口》ppt课件_第2页
《抽象类和接口》ppt课件_第3页
《抽象类和接口》ppt课件_第4页
《抽象类和接口》ppt课件_第5页
资源描述:

《《抽象类和接口》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章抽象类和接口10.1引言10.2抽象类10.3日历类Calendar和公历类GregorianCanlendar10.4接口10.5将基本数据类型值处理为对象10.6基本类型和包装类之间的自动转换10.1引言抽象类:将父类设计得非常抽象,让它包含所有子类的共同属性、方法,以至于它没有具体的实例。接口:实现多重继承10.2抽象类存在意义抽象类是类层次中较高层次的概括,抽象类的作用是让其他类来继承它的抽象化的特征抽象类中可以包括被它的所有子类共享的公共行为抽象类中可以包括被它的所有子类共享的公共属性在程序中不能用

2、抽象类作为模板来创建对象;在用户生成实例时强迫用户生成更具体的实例,保证代码的安全性抽象类的格式abstractclass类名{…}抽象方法的语法形式为abstract(...);抽象方法的优点隐藏具体的细节信息,所有的子类使用的都是相同的方法头,其中包含了调用该方法时需要了解的全部信息强迫子类完成指定的行为,规定其子类需要用到的“标准”行为通用程序设计(一般程序设计)例1问:抽象类GeometricObject中的抽象方法可否删除?各种图形都需要实现绘图方法,可在抽象

3、父类中声明一个draw抽象方法abstractclassGraphicObject{intx,y;voidmoveTo(intX,intY){...}abstractvoiddraw();}然后在每一个子类中重写draw方法,例如:classCircleextendsGraphicObject{voiddraw(){...}}classRectangleextendsGraphicObject{voiddraw(){...}}publicclassTest{publicstaticvoidmain(…){Graphi

4、cObjectob1=Cirlce();GraphicObjectob2=Cirlce();ob1.draw();ob2.draw();}}例2将所有图形的公共属性及方法抽象到抽象类Shape。再将2D及3D对象的特性分别抽取出来,形成两个抽象类TwoDimensionalShape及ThreeDimensionalShape2D图形包括Circles、Triangles、Rectangles和Squares3D图形包括Cube、Sphere、或Tetrahedron在UML中,抽象类的类名为斜体,以与具体类相区别S

5、hapeCircleTriangleRectangleSquareTwoDimensionalShapeThreeDimensionalShapeCubeSphereTetrahedron例3LoanLeaseMortgageHouseLoanCarLoan贷款(Loan)分为许多种类,如租借(Lease)、抵押(Mortgage)、房屋贷款(HouseLoan)、汽车贷款(CarLoan)等将Loan声明为抽象类,并指定所有的子类对象都应具有的行为,如计算月还款值(calculateMonthlyPayment),

6、还款(makePayment),取得客户信息(getClientInfo),其中前两个因贷款种类不同计算方法也不同,可声明为抽象方法,Loan的所有子类都必须对这两个抽象方法进行重写publicabstractclassLoan{publicabstractfloatcalculateMonthlyPayment();publicabstractvoidmakePayment(floatamount);publicClientgetClientInfo(){}}例4注意:1抽象类前需加修饰符abstract2不能使用

7、new方法进行实例化,故,抽象类必须被继承3抽象类可包含常规类能够包含的任何东西,例如构造方法等非抽象方法,其构造方法在子类的构造方法中调用4没有抽象方法的类也可被声明为抽象类5包含抽象方法的类必须声明为抽象类6若子类没有实现父类的全部抽象方法,它也必须声明为抽象类7抽象方法必须是非静态的,子类中的实现也必须是非静态的,否则无法覆盖8即便父类是具体类,子类也可能是抽象类9抽象类虽然无法用new实例化,但可以用作数据类型例:抽象类x;抽象类a[5]=new抽象类[5];x=new子类();a[i]=new子类();10

8、.3日历类Calendar和公历类GregorianCanlendar10.4接口Java不支持多重继承,是为了使语言本身结构简单,层次清楚,易于管理,更安全可靠,避免冲突。但同时也就限制了语言的功能。为了在实际应用中借助多重继承的功能,共享一些公用的常量和一些常用的方法,Java使用接口来弥补。一个类可以实现多个接口,达到多重继承的效果。接口

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。