为什么实现的是onclicklisener这个接口,却将其称为外部类呢?莫非是接口也是抽象类的一种,也就相当于继承了父类?
为什么实现的是onclicklisener这个接口,却将其称为外部类呢?莫非是接口也是抽象类的一种,也就相当于继承了父类?
为什么实现的是onclicklisener这个接口,却将其称为外部类呢?莫非是接口也是抽象类的一种,也就相当于继承了父类?
2015-03-27
接口和抽象类在这个问题上有着相同的特性:
它们都包含抽象的方法,所以需要子类(抽象类)和实现类(接口)来将方法具体完成.
在onclicklisener的匿名实现中,可以理解为接口和抽象是类似的.
但接口和抽象类在其他用法上是有所区别的:
一个类可以实现多个接口,但只能继承一个抽象类.
接口一般不包含属性字段,但抽象类则大多包含
抽象类中可以有具体的方法(小部分抽象),但接口中的方法都是抽象的
单就我的理解,接口和抽象类最大的区别就在于
抽象类属于类的范畴,继承了抽象类就代表是这个类家族中的一员了.(哈士奇是狗的一员)
接口则代表着具有这个功能(人学狗叫就能与狗交流)
onclicklisener 其实代表的就是能够响应点击事件,而这个行为无论是Activity亦或是自定义的View都可以做到,实现
所以做成接口最为合适.
以上就是我对接口和抽象类的一点浅见.如有错误之处,还请指正.
举报