为何要有内部接口
2016-07-21 17:28
176 查看
如果你有一个类Foo和你希望其他类能够监听它的事件,你可以再另外声明一个叫FooListener的接口,需要监听Foo类的的那个类就必须要实现这个接口,但如果声明为内部接口可能会更加明确,这个接口与这个类的关系更紧密,更符合逻辑,容易维护与封装。
我自己的理解,有如下一种情况,你设计了一个抽象类,里面有属性,有方法还有抽象方法。正如你所知的,抽象类是不能被实例化的,这个时候,你又要在一个类中包含抽象方法,又要这个类被实例化,那怎么办呢?就只能使用内部接口把这些抽象类封装起来。
那么,使用了内部接口的类具备如下特点:
1. 可以直接被实例化
2. 其子类如果不明确声明implements内部接口,可以不用实现内部接口
显然这种做法的实际使用意义并不大我个人也感觉这只是为了使得语义更加明确罢了
我自己的理解,有如下一种情况,你设计了一个抽象类,里面有属性,有方法还有抽象方法。正如你所知的,抽象类是不能被实例化的,这个时候,你又要在一个类中包含抽象方法,又要这个类被实例化,那怎么办呢?就只能使用内部接口把这些抽象类封装起来。
那么,使用了内部接口的类具备如下特点:
1. 可以直接被实例化
2. 其子类如果不明确声明implements内部接口,可以不用实现内部接口
显然这种做法的实际使用意义并不大我个人也感觉这只是为了使得语义更加明确罢了
相关文章推荐
- 无敌获取控制器
- 编程小程序:1.编写程序,每次程序运行,产生5组双色球号码。每组号码升序排列,至少写出三种排序方法。
- oracle with as用法
- JS和CSS互动
- 委托及多播委托
- 逆向分析isKindOfClass 内部实现
- 利用Python实现选择排序
- css中的float知识点总结
- 出现Error: could not find java 2 Runtime Environment错误的处理!!
- ffmpeg 捕获屏幕和采集声卡、摄像头、麦克风声音
- MySQL存储引擎中的MyISAM和InnoDB区别详解
- 推荐系统 - 3 - 协同过滤算法、随机游走算法
- python学习
- 双击jar文件运行程序
- Java 字节码 工具 javassist
- sql语句备忘:非int类型行转列
- jquery datatables双击,获取行号。
- python模块
- DOM表格对象
- memcache设置set过期时间