Java如何使用接口
2017-08-06 10:43
211 查看
两个类中的两个类似的功能,调用它们的类动态地决定一种实现,那它们提供一个抽象父类子类分别实现父类所定义的方法。
问题的出现:Java 是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个父类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。接口是可插入性的保证。
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何父类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是哪一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。
对于下述情况,接口是有用的:
声明方法,期望一个或更多的类来实现该方法。
揭示一个对象的编程接口,而不揭示类的实际程序体。(当将类的一个包输送到其它开发程序中时它是非常有用的。)
捕获无关类之间的相似性,而不强迫类关系。
可以作为参数被传递到在其它对象上调用的方法中面向对象程序设计讲究“提高内聚,降低耦合”,那么不同的程序模块怎么相互访问呢,就是通过接口,也就是接口是各部分对外的统一外观。接口在 Java 程序设计中体现的思想就是隔离,因为接口只是描述一个统一的行为,所以开发人员在面向接口编程时并不关心具 体的实现。
由以上讲到的接口的作用和基本思想可以看到,接口在面向对象的 Java 程序设计中占有举足轻重的地位。事实上在设计阶段最重要的任务之一就是设计出各部分的接口,然后通过接口的组合,形成程序的基本框架结构。
问题的出现:Java 是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个父类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。接口是可插入性的保证。
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何父类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是哪一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。
对于下述情况,接口是有用的:
声明方法,期望一个或更多的类来实现该方法。
揭示一个对象的编程接口,而不揭示类的实际程序体。(当将类的一个包输送到其它开发程序中时它是非常有用的。)
捕获无关类之间的相似性,而不强迫类关系。
可以作为参数被传递到在其它对象上调用的方法中面向对象程序设计讲究“提高内聚,降低耦合”,那么不同的程序模块怎么相互访问呢,就是通过接口,也就是接口是各部分对外的统一外观。接口在 Java 程序设计中体现的思想就是隔离,因为接口只是描述一个统一的行为,所以开发人员在面向接口编程时并不关心具 体的实现。
由以上讲到的接口的作用和基本思想可以看到,接口在面向对象的 Java 程序设计中占有举足轻重的地位。事实上在设计阶段最重要的任务之一就是设计出各部分的接口,然后通过接口的组合,形成程序的基本框架结构。
相关文章推荐
- 如何让Java和C++接口互相调用:JNI使用指南
- 如何使用抽象类和接口类? (JAVA、PHP通用)
- 如何让Java和C++接口互相调用:JNI使用指南
- controller中使用@RequestBody,Java如何传递json对象访问接口,以及对象中的时间类型
- java中的FileFilter接口如何使用
- 如何让Java和C++接口互相调用:JNI使用指南
- 使用java(spring)编写ajax的接口如何返回给请求者数据
- 如何在Java类中定义接口属性并如何使用接口的方法
- java中如何使用接口继承(Extending Interfaces)
- 【示例教程】如何使用LEADTOOLS 的JAVA接口从护照中识别和提取数据
- Java学习笔记---------如何使用Runnable接口来创建线程???
- Cocos2dx引擎笔记——如何让Java和C++接口互相调用:JNI使用指南
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP(转)
- 如何使用Java POI生成Excel表文件
- Java中如何正确使用字体编码
- JAVA流使用总结——如何选择合适的流
- Java中如何正确使用字体编码
- 如何使用Java编写多线程程序
- 如何在Java中使用Blob字段(使用Model傳遞值)
- Java 接口大全、面向接口编程、什么时候使用接口。选择Java接口还是抽象类