《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt

《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt

ID:48794002

大小:92.50 KB

页数:20页

时间:2020-01-25

《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt_第1页
《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt_第2页
《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt_第3页
《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt_第4页
《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt_第5页
资源描述:

《《Java程序设计与应用开发》第4章:接口、抽象类与包.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4章接口、抽象类与包构造Java语言程序有两大基本构件:类和接口。接口由常量和抽象方法构成。一个接口可以扩展多个接口,一个接口也可以被多个接口所继承。抽象类可以用来表示那些不能或不需要实例化的抽象概念,抽象需要被继承,在抽象类中包含了一些子类共有的属性和行为。把一组相关类和接口存放在一个“包”中,构成一个“类库”,然后供多个场合重复使用,这种机制称为类复用。4.1接口接口是一个特殊的语法结构,其中可以包含一组方法声明(没有实现的方法)和一些常量。接口和类构成Java的两个基本类型,但接口和类有着不同的目的,它可用于在树形层次结构上毫不相关的类之间

2、进行交互。一个Java类可以实现多个Java接口,这也解决了Java类不支持多重继承带来的弱点。4.1.1接口定义定义一个接口:publicinterfaceInterfaceNameextendsI1,...,Ik//接口声明{//接口体,其中可以包含方法声明和常量...}在接口体中,方法声明的常见格式如下:ReturnTypeMethodName(Parameter-List);此方法声明由方法返回值类型(ReturnType)、方法名(MethodName)和方法参数列表(Parameter-List)组成,不需要其它修饰符。在Java接口中

3、声明的方法,将隐式地声明为公有的(public)和抽象的(abstract)。在Java接口中声明的变量其实都是常量,接口中的变量声明,将隐式地声明为public、static和final,即常量,所以接口中定义的变量必须初始化。和类不同,一个Java接口可以实现多个父接口,子接口也可以对父接口的方法和变量进行覆盖。4.1.2接口的实现Java接口中声明了一组抽象方法,它构成了实现该接口的不同类共同遵守的约定。在类定义中可以用关键字implements来指定其实现的接口。一个类实现某个接口,就必须为该接口中的所有方法(包括因继承关系得到的方法)提供

4、实现,它也可以直接引用接口中的常量。√Java类只允许单一继承,即一个类只能继承(extends)一个父类;但一个类可以实现多个接口,Java支持接口的多重继承。在Java类定义中,可以同时包括extends子句和implements子句,如果存在extends子句,则implements子句应跟随extends子句后面。4.1.3接口作为类型和类一样,Java接口也是一种数据类型,可以在任何使用其他数据类型的地方使用接口名来表示数据类型。我们可以用接口名来声明一个类变量、一个方法的形参或者一个局部变量。用接口名声明的引用型变量,可以指向实现该接口

5、的任意类的对象。4.1.4接口不应改变修改某个接口,为其添加一个方法,这个简单的修改可能会造成牵一发而动全身的局面:所有实现这个接口的类都将无法工作,因为现在他们已经不再实现这个接口了。你要么放弃对这个接口的修改,要么连同修改所有实现这个接口的所有类。在设计接口的最初,预测出接口的所有功能,这可能是不太现实。如果觉得接口非改不行,可以创建一个新的接口或者扩展这个接口,算是一种折衷的解决方法。其他相关的类可以保持不变,或者重新实现这个新的接口。4.2抽象类在面向对象的概念中,所有的对象都是通过类来描述的,但并不是所有的类都是用来描绘对象的,如果一个类

6、中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。4.2.1抽象方法抽象方法(abstractmethod)在形式上就是包含abstract修饰符的方法声明,它没有方法体,也就是没有实现方法。抽象方法的声明格式如下:abstractreturnTypeabstractMethodName([paramlist]);抽象方法只能出现在抽象类中。如果一个类中含有抽象方法,那么该类也必须声明为抽象的。4.2.2抽象类定义一个

7、抽象类需要关键字abstract,其基本格式如下:abstractclassClassName{...}作为类的修饰符abstract和final,两者不可同时出现在类的声明中,因为final将限制一个类被继承,而抽象类却必须被继承。抽象类不能被实例化。抽象类中最常见的成员就是抽象方法。抽象类中也可以包含供所有子类共享的非抽象的成员变量和成员方法。继承抽象类的非抽象子类只需要实现其中的抽象方法,对于非抽象方法既可以直接继承,也可以重新覆盖。4.2.2抽象类和接口的比较抽象类在Java语言中体现了一种继承关系,要想使得继承关系合理,抽象类和继承类之间

8、必须存在"是一个(isa)"关系,即抽象类和继承类在本质上应该是相同的。而对于接口来说,并不要求接口和接口实现者在本质上是

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

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

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