面向对象的高级特性

面向对象的高级特性

ID:46634792

大小:523.00 KB

页数:51页

时间:2019-11-26

面向对象的高级特性_第1页
面向对象的高级特性_第2页
面向对象的高级特性_第3页
面向对象的高级特性_第4页
面向对象的高级特性_第5页
资源描述:

《面向对象的高级特性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章面向对象的高级特性6.1.1接口的引入JAVA的单重继承机制使得程序结构简单清晰,但只靠单重继承机制有时不能解决某些复杂问题。6.1接口交通工具车辆飞机船舶汽车喷气飞机柴油机船划船燃油1.接口的特点:1)接口使用关键字interface来定义,而不是class2)接口中定义的变量全部是静态最终变量3)接口中没有定义构造方法,而且定义的方法都是抽象方法(只提供方法的定义,而不实现)4)接口采用多重继承机制,而不是类的单重继承机制6.1.1接口的引入2.接口的作用:1)用来实现类似多重继承功能的一种结构2)接口是一个标准(约定),是为了规范实现类,因此可以不用管具体实现类如何实现

2、该接口的方法6.1.1接口的引入3.接口的定义:[public]interface接口名[extends父接口1,父接口2,…]{[publicstaticfinal]typename1=value;…[publicabstract]返回值类型方法名(形参表)[throws异常名列表];}6.1.1接口的引入默认的修饰符如果没有,表示它是“友好”的,包内访问性没有方法体,直接以分号结束4.接口的定义举例:publicinterfaceStack{publicstaticfinalinta=1;publicabstractvoidpush(floata,floatb);}public

3、interfaceStack{}6.1.1接口的引入1.接口的调用方法:[public]classclassNameimplements接口名{….//接口中方法的具体实现}6.1.2调用接口2.实现接口注意点:1)一个类能实现多个接口,各接口之间用逗号隔开2)一个接口可以被多个类实现3)一个类声明实现某个接口后,必须实现该接口的所有方法(包括该接口的所有父接口方法),且被实现的方法和接口定义的方法完全一样!4)被实现的方法的访问控制符必须显式地使用public修饰!6.1.2调用接口举例:6.1.2调用接口publicinterfacePlayer{voidplay();void

4、loop();voidstop();}publicclassMyclassimplementsPlayer{publicvoidplay(){//具体实现}publicvoidloop();{//具体实现}publicvoidstop();{//具体实现}}当然,一个接口可以被任意多个类实现,如:6.1.2调用接口publicclassMyOtherclassimplementsPlayer{publicvoidplay(){//具体实现}….}关于接口多重继承时的实现:该类必须实现子接口和其所有父接口所定义的方法6.1.2调用接口publicinterfaceFirst{void

5、play();}publicinterfaceSecondextendsFirst{voidstop();}classMyClassimplementsSecond{publicvoidplay(){…//具体实现}publicvoidstop(){…//具体实现}}注意:由于一个类实现一个接口时必须实现它的全部方法,所以在对接口进行修改时必须特别小心!6.1.2调用接口publicinterfacePlayer{voidplay();voidloop();voidstop();voidassess();}如果新增方法定义voidassess();,则会引起所有实现这个接口的类都出

6、错,这时候怎么修改最好?答案:为原接口定义一个子接口!6.1.2调用接口publicinterfacePlayerClipentendsPlayer{voidassess();}接口的定义和类的定义很相似,但是,永远不能用new操作符实例化一个接口,例如:x=newPlayer();//错误!可以声明一个接口变量,并将该变量指向一个实现了该接口的类的对象,例如:Playerx=newMyclass();可以通过下面语句判断一个对象是否实现了某个接口:if(xinstanceofPlayer){….}6.1.3接口的属性接口与类相似,通过extends关键字实现继承,但是与类不一样的

7、是,一个接口可以使用多个其他接口的内容。6.1.4接口的扩展publicinterfaceFourthextendsFirst,Second{…}注意:若两个父接口都有一个具有相同特征的方法(名字相同,参数相同),则它们必须具有相同的返回值类型!6.1.4接口的扩展publicinterfaceFirst{intplay(inta);}publicinterfaceSecond{intplay(intb);}思考:若现在要使用接口修改上次上机的程序:图形与其子类,可以

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

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

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