




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 接口与多态,6.1 接口,Java中的接口就是定义了若干个抽象方法和常量,形成一个属性集合,该属性集合通常对应某一组功能,可以实现类似于类的多重继承功能。其格式为:,6.11接口的声明与使用,1.接口声明,public interface 接口名extends 父接口名列表 /接口体 /常量声明 /抽象方法声明 ,2.接口体,接口体中包含常量的声明和方法定义两部分。,接口声明时的注意事项,在Java中接口是一种专门的类型,用interface关键字定义接口。 接口中只能定义抽象方法,而且访问权限一定是公有的,在定义时可省略public和abstract修饰符。 接口中可以定义变量,但实际上是public final修饰的常量。 接口中不能定义静态方法。,3.接口的使用,在Java语言中,接口由类去实现以便使用接口中的方法,一个类可以实现多个接口,类通过使用关键字implements声明自己实现一个或多个接口。如果实现多个接口,则用逗号隔开接口名。 如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法。需要注意的是,重写接口的方法时,接口中的方法一定是public abstract方法,所以类在重写接口方法 时不仅要去掉abstract修饰、给出方法体,而且方法访问权限一定要显式地用public来修饰。,类重写的接口方法以及接口中的常量可以被类的对象调用,而且常量也可以用类名或接口名直接调用。 接口声明时,如果关键字interface前加下public,就称这样的接口是一个public接口。public接口可以被任何一个类实现。如果一个接口不加public修饰,就是友好接口,只能被同一包中的类实现。,如果实现了某个接口,那么子类也就自然实现了该接口,子类不必于地使用关键字implements声明实现这个接口。 如果一个类声明实现一个接口,但没有重写串的所有方法,那么这个类必须是abstract类。,例:接口的使用,interface computable int MAX=100; int f(int x); ,class china implements computable int number; public int f(int x) return x+43; ,public class example6 public static void main(String args) china c=new china(); c.number=48+computable.MAX; System.out.println(“Chinese student:“+c.f(4); ,接口的继承性,与类相仿,接口也具有继承性。定义一个接口时可以通过extends关键字声明该新接口是某个已经存在的父接口的派生接口,它将继承父接口的所有属性和方法。 与类的继承不同的是一个接口可以有一个以上父接口,它们之间用逗号分隔,形成父接口列表。新接口将继承所有父接口中属性和方法。,类实现接口的注意事项,在类的声明部分,用implements关键字声明该类将要实现哪些接口。 如果实现某接口的类不是abstract抽象类,则在类的定义部分必须实现指定接口所有抽象方法。 如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法。 一个类在实现某接口的抽象方法时,必须使用完全相同的方法名。 接口抽象访问限制符都已制定为public,所以类在实现方法时,必须显式地使用public修饰符。,interface A int a=1; interface B int b=2; void pp(); ,interface MyInterface extends A,B abstract class AbstractInterfaceExam implements A,B public class InterfaceExam extends AbstractInterfaceExam/implements MyInterface /A,B,public class InterfaceExam extends AbstractInterfaceExam implements MyInterface A,B public static void main(String args) InterfaceExam obj =new InterfaceExam(); System.out.println(“继承接口A中的a=“+obj.a); obj.pp(); public void pp() System.out.println(“继承接口B中的b=“+.b); ,几点说明,制定模块与模块之间的通信协议,一个定义多人实现。 接口做方法的参数时,其实参要用它的实现类。 接口的数据成员都静态常量,通过接口名,实现类和对象都可以进行访问。访问时点运算符。,. 接口的回调,接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口方法。,interface ShowMessage void ShowTrademark(String s); ,class TV implements ShowMessage public void ShowTrademark(String s) System.out.println(s); ,public class example63 public static void main(String args) ShowMessage sm; sm=new TV(); sm.ShowTrademark(“长虹牌电视机“); ,6.2.2 接口的多态性,接口的多态性是不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在架设接口依法时就可能具有多种形态。,6.2.3 接口与抽象类的比较,接口不能包含任何可以执行的方法,而抽象类可以。 接口中只可以有常量,不能有变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烘焙理论考试题及答案
- 核电专业考试题及答案
- 车展其他相关活动方案
- 汉字板书考试题及答案
- 攻防演练考试题及答案
- 高速飙车考试题及答案
- 幼儿园教学教案设计:不玩激光笔
- 洱海保护考试题及答案
- (正式版)DB15∕T 3385-2024 《华北落叶松人工林抚育技术规程》
- 客户服务流程优化与反馈跟踪表
- 刑事拘留申请书
- 个人向企业正式借款合同
- 2025部编版五年级上册《道德与法治》教学工作计划
- 催收话术培训
- 国开电大《组织行为学》形考任务1-4
- 期末检测试卷-2024-2025学年六年级数学上册人教版
- 品牌代工厂协议书范本
- GB/T 44815-2024激光器和激光相关设备激光束偏振特性测量方法
- 三管防控及护理管理要点
- 携程旅行合同电子版
- 幼儿园食品安全和膳食经费管理方案
评论
0/150
提交评论