欢迎来到天天文库
浏览记录
ID:49636585
大小:369.00 KB
页数:23页
时间:2020-02-26
《Java抽象类.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、抽象类和接口第四章Java中的抽象类、接口和程序包——抽象类与抽象方法抽象类:用abstract关键字来修饰一个类时,该类叫做抽象类;抽象类必须被继承。抽象类不能被直接实例化。它只能作为其它类的超类,这一点与最终类(final类)正好相反。抽象方法:用abstract来修饰一个方法时,该方法叫做抽象方法。抽象方法必须被重写抽象方法只有声明,不能有实现。定义了抽象方法的类必须是抽象类。abstractreturnTypeabstractMethod([paramlist]);——抽象类与抽象方法抽象类和最终类声明抽象类与抽象方法publicabstractclassPlaneGrap
2、hics1//平面图形类,抽象类{publicabstractdoublearea();//计算面积,抽象方法,分号“;”必不可少}抽象类和最终类规定:抽象类不能被直接实例化,只有它的非抽象子类可以创建对象抽象类中不一定包含抽象方法,但有抽象方法的类必定是抽象类抽象类中的抽象方法只是声明,不包含方法体,即不给出方法的实现构造方法、类方法不能声明为抽象方法抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类抽象类和最终类抽象类的意义:描述抽象的概念,规定必须实现的方法的统一接口关于抽象类和抽象方法Abstracttest.java最终类和最终方法final关键字修饰
3、的类称为最终类,最终类不能被继承final关键字修饰的方法称为最终方法,最终方法不能被覆盖最终方法和最终类没有必然的对应关系Java中的接口1、含义:一组只有成员函数原型定义而无成员函数定义体的方法集。接口定义了一组成员函数,但没有具体加以实现,其实现则是由实现该接口的类来加以具体完成的。2、作用:为若干个类(相关或无关的类)定义一组相同的功能行为,从而达到相同的功能名称,不同的功能实现之目的;另外也可以实现类似C++语言中的多重继承但又避免了虚基类的编程。接口的概念在构建问题的类过程中,我们经常会遇到一种特殊的情况,在描述某个类的各个方法时,对每个方法我们只能给出其功能实现的
4、要求(原形声明)但不能给出具体的功能实现(函数定义体)。因为我们所处理的问题只是一个泛泛的功能说明,并没有针对某一具体类型的问题来说明。接口定义格式要点:类似于类的定义格式,只是以interface作为定义符。格式:接口的类型interface接口名{常量(并且必须初始化);成员方法定义(只有原形而无函数定义体);}或:接口的类型interface派生的接口名extends父接口名列表{接口中的成员变量定义;接口中的成员方法原型定义;}实现接口方法:通过定义一个类同时采用implements来指明所实现的接口名,并在该类中重写接口中的所有成员方法且给出成员函数体定义。要点类中所
5、实现的接口中的成员函数的原型都应该与它在接口中的原型定义保持一致;并在类中重写接口中的所有成员方法;通过实现接口,从而可扩充或增加该类的功能。接口只定义方法名,而类实现接口内部的方法的代码接口的继承只是继承接口本身,而非代码,从而不会产生重复继承多次。注意的一个类可以实现多个接口实现接口的类必须给出接口中所有方法的具体实现!除非这个类是抽象类接口的作用接口提供了完全的抽象说明所有实现该接口的类应具有的形式接口中的方法在多个实现接口的类中表现出多态性接口回调接口也是引用数据类型,指向接口的引用也可以指向任意实现了该接口的类创建的实例接口回调,即接口的引用可以指向实现了接口的类的实例例
6、子:Interfacetest.java例子interfaceComputer{publicvoidComputeData();//计算机应该有数据计算的功能publicvoidSaveData();//计算机应该有存储数据的功能publicvoidPrintData();//计算机应该有打印数据的功能publicvoidDisplayData();//计算机应该有显示数据的功能}抽象类和接口的对比接口和类是很相似但又有区别的一种数据结构,其设计和调用也是JAVA程序设计的一种重要技术。从结构上看,接口有如下特点:接口用interface来定义,而不是class接口中定义的
7、变量去全部是最终的静态变量接口中没有自身的构造方法,不能创建实例,而定义的其他方法全是抽象方法,即提供了方法的定义,但是没有提供方法的实现。接口采用多重继承机制,而不是采用单一的继承机制。接口与抽象类的区别抽象类和接口中主要关心的都是抽象,而不关心具体的实现。但也有一些区别:一个类只能继承一个类,但可以实现多个接口抽象类表示一种继承关系,接口只说明功能二者的区别主要体现在对问题域的理解上抽象类的应用abstractclassPerson{privateintID;pr
此文档下载收益归作者所有