欢迎来到天天文库
浏览记录
ID:36203823
大小:308.00 KB
页数:22页
时间:2019-05-07
《java抽象类与接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、0抽象类与接口1本节学习目标:什么是抽象类?如何定义抽象类?什么是接口?JAVA中为什么要引入接口?如何实现接口?2一、抽象类(abstractclass)抽象类一般没有足够的信息来描述一个具体的对象,抽象类只用于继承,不能用于创建对象。一个抽象类一般包括一个或多个抽象方法(只有方法说明,没有方法体)。抽象类的子类必须实现其父类定义的每一个抽象方法,若没有实现父类的所有抽象方法,则该子类也应该定义为抽象类.31、抽象类的实现抽象类abstract修饰,其格式是:abstractclass类名{类成员定义}抽象类也可以包含非抽象的方法。继
2、承抽象类的非抽象子类必须覆盖父类中定义的抽象方法。42、抽象方法(abstractmethod)抽象方法用abstract修饰,它没有方法体。抽象方法的格式是:abstract返回类型方法名([参数]);抽象方法只能出现在抽象类中。含有抽象方法的类必须定义成抽象类。5几点注意事项:(1)构造方法不能定义为抽象方法。(2)最终方法不能说明为抽象方法。(3)static和private修饰符不能用于抽象方法。举例6求常见平面图形(如三角形、圆、矩形和正方形等)的面积。利用抽象类,编写程序实现该功能。技术分析:7各种平面图形都可以求出其面积,
3、但不同的形状求面积的方法不同,因此可以定义一个平面图形形状类Shape。Shape类中有一个求面积的抽象方法(area),只所以定义为抽象方法是因为不同的平面图形求法不同。圆(Circle)、矩形(Rectangle)和三角形(Triangle)是不同的形状,它们都是Shape的子类,而正方形(Square)是矩形(Rectangle)中的一种特殊类型,因此正方形是矩形的子类,如下图所示。抽象类的类名在类图中要用斜体表示,以区别于普通的类。8图6-5几何形状的类层次结构ShapeCircleRectangleTriangleSquare
4、9作业:电在传输上都会有损耗,假如计算电费时区分冬季和夏季用电情况,冬季在用电原有读数上加上20千瓦小时作为用电损耗,而夏季没有此损耗问题。电费是每千瓦小时电0.49元,假定用电度数为125千瓦小时,利用抽象类,分别计算出冬季和夏季相应的电费。说明10抽象类中可以包含非抽象的方法。若类中包含了抽象方法,则该类必须要定义为抽象类。3抽象类不能用来实例化对象。一般用于继承。11二、接口(interface)Java为了免去了C++随着多继承所衍生的复杂问题的Bug,使用接口机制来解决多重继承的问题。再者,在实际软件开发中,多个不相干的类如果
5、存在相同的属性和类似功能的方法,就可以将这些属性和方法单独组织起来,定义成一个单独的程序模块,这个模块可以使用接口来定义。另外,接口中只定义了人们关心的功能,并不考虑这些功能是如何实现的以及哪些类要实现这些功能,在实际软件开发中,假如你是一个项目经理,需要管理多个开发人员,如果你希望开发的某些类要具有某种功能,最简单的做法就是你定义一个接口,然后指示开发人员要在设计类时实现这个接口。12(1)通过接口可以实现不相干类的相同行为而不需考虑这些类之间的层次关系。(2)通过接口可以实现多继承机制。(3)通过接口可以了解对象的交互界面而不需了解
6、对象所对应的类。1、接口的功能13[public]interface接口名称{//接口体程序}接口是一系列没有实现的方法和常量的组合,是个功能模块。接口隐含修饰符为abstract没有public的接口,其访问将局限于该类所属的包。接口继承通过关键字extends来实现,其语法与类继承相同,而且一个接口可以继承多个接口。在类的继承中,所有的类,其超类均为Object,而接口没有所谓的超接口。2、接口的定义14publicinterfaceInterfaceName{finalStringname="Name";finalStringse
7、x="male";…voidaInterfaceExample(parameterList);}接口声明接口体常量定义方法声明■所有定义在接口中的方法隐含为public和abstract。■所有定义在接口中的常量可以是public、static和final。定义在接口中的成员声明不允许使用某些声明修饰语,比如private和protected修饰语。154.接口的实现class类名implements接口名1,接口名2…一个类可以使用implements实现多个接口,。从而实现多继承的机制。实现接口的类必须实现接口中的所有方法。否则为抽
8、象类。在类中实现接口中定义的方法时,不能比接口中定义的方法有更低的访问权限。因此,被实现的接口方法必须用public修饰。16publicclassInterfaceExampleimplementsRun
此文档下载收益归作者所有