- 4
- 0
- 约1.02万字
- 约 50页
- 2019-11-10 发布于安徽
- 举报
(3)接口的使用 一个类通过使用关键字implements 声明自己实现一个或多个接口。如果实现多个接口,用逗号隔开接口名,如: class A implements Printable,Addable 6.10 接口 6.10 接口 如果一个类实现某个接口,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体。要注意的是,接口中的方法被默认是public和abstract的,接口在声明方法时可以省略方法前面的public和abstract关键字,但是,类在实现接口方法时,一定要用public来修饰。类实现的接口方法以及接口中的常量可以被类的对象调用。 Interface 1 Interface 2 Interface 3 常量 方法 常量和方法 在默认状态下,接口中常量的访问属性总是 public、static和final 在默认状态下,接口中方法的访问属性总是 public和abtract interface Collection { int MAX_NUM=100; void add (Object obj); void delete (Object obj); Object find (Object obj); int currentCount ( ); } class FIFOQueue implements Collection { void add ( Object obj ) { …… } void delete( Object obj ) { …… } Object find( Object obj ) { …… } int currentCount() { …… } } 6.10 接口 如果父类实现了某个接口,则其子类也就自然实现这个接口。接口也可以被继承,即可以通过关键字extends声明一个接口是另一个接口的子接口。 现在我们看一个例子来看一看类是如何实现接口的。 6.10 接口 6.10 接口 2.接口与多态 接口的语法规则很容易记住,但真正理解接口更重要。你可能注意到,在上述例子中如果去掉接口,并把程序中的a.MAX、b.MAX去掉,上述程序的运行没有任何问题。那为什么要用接口呢? 假如轿车、拖拉机、客车都是机动车的子类,其中机动车是一个抽象类。如果机动车中有3个抽象方法:“刹车”、“收取费用”、“调节温度”,那么所有的子类都要实现这3个方法,产生各自的收费或控制温度的行为。这显然不符合人们的思维方法,因为拖拉机可能不需要有“收取费用”或“调节温度”的功能,合理的处理就是去掉机动车的“收取费用”和“调节温度”这两个方法。如果允许多继承,轿车 6.10 接口 类想具有“调节温度”的功能,轿车类可以是机动车的子类,同时也是另外一个具有“调节温度”功能类的子类。多继承有可能增加了子类的负担,因为轿车可能从它的多个父类继承了一些并不需要的功能。 Java支持继承,但不支持多继承,即一个类只能有一个父类。单继承使得程序更加容易维护和健壮,多继承使得编程更加灵活,但却增加了子类的负担,使用不当会引起混乱为了使程序容易维护和健壮,且不失灵活性,Java使用了接口,一个类可以实现多个接口,接口可以增加很多类都需要实现的功能,不同的类可以使用相同的接口,同一个类也可以实现多个接口。 6.10 接口 接口的思想在于它可以增加很多类都需要实现的功能,使用相同的接口类不一定有继承关系,就象各式各样的商品,它们可能隶属不同的公司,工商部门要求都必须具有显示商标的功能(实现同一接口),但商标的具体制作由各个公司自己去实现。 用户不能创建接口类型的对象,但可以创建接口类型的变量。 Conversions converter=null; 可以用这种接口类型的变量存储实现Conversions接口的任何类对象的引用。也就是说用户可以用这个变量以多态方式调用在Conversions接口中说明的方法。 6.11 接口的回调 6.11 接口的回调 在讲述继承与多态时,我们通过子类对象的上转型体现了继承的多态性,即把子类创建的对象的引用放到一个父类的对象中时,得到该对象的一个上转型对象,那么这个上转型对象在调用方法时就可能具有多种形态,不同对象的上转型对象调用同一方法可能产生不同的行为。 1.接口回调 接口回调是多态的另一种体现,接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相
您可能关注的文档
- ai_ei_ui_课件(公开课完整版.ppt
- AutoCAD_2016基础教程第1章_AutoCAD基础知识.ppt
- AutoCAD_2016实用教程第10章_三维建模基础.ppt
- DSP_第三章_指令系统方案.ppt
- DSP应用课程设计课件_第2讲_SEED5402_DSK的组成和结构.ppt
- Eclipse平台培训教材.ppt
- eplan_P8图框引用和编辑.ppt
- IT项目管理课件_第六章_项目成本管理.ppt
- IT项目管理总结报告_陈运德_.ppt
- PDCA工作计划总结的制订与执行.ppt
- 小学六年级英语词汇全(精讲精析+分类汇总+易错突破).docx
- 二年级下册成语 分类详解+易错辨析+实用练习(规范版).docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版) 精华版.docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版).docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版)规范.docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版)汇编.docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版)全.docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版)实用.docx
- 二年级下册成语 分类详解+易错辨析+实用练习(完整版)实用版.docx
- 二年级下册成语 分类详解+易错辨析+实用练习.docx
最近下载
- 项目三 气源装置及辅助元件.pptx
- 简单电力系统潮流分析.ppt VIP
- 长江传媒版(鄂)信息技术五年级上教案全本.doc VIP
- 八年级地理下册第六章北方地区_第二节_东北三省优秀课件.ppt VIP
- 小型户用储能产品集成设计技术规范.pptx VIP
- 2025年三峡电力职业学院单招《数学》能力检测试卷含答案详解(达标题).docx VIP
- 2025年中国机床行业发展潜力分析及投资方向研究报告.docx
- 安徽省A10联盟2024-2025学年高一下学期3月阶段考政治试卷含答案或解析.pdf VIP
- 带圈数字符号 1-100.docx VIP
- 注射用盐酸美法仑(JXHL1600141)说明书.pdf VIP
原创力文档

文档评论(0)