为了账号安全,请及时绑定邮箱和手机立即绑定

为什么实现的是onclicklisener这个接口,却将其称为外部类呢?莫非是接口也是抽象类的一种,也就相当于继承了父类?

为什么实现的是onclicklisener这个接口,却将其称为外部类呢?莫非是接口也是抽象类的一种,也就相当于继承了父类?

正在回答

1 回答

接口和抽象类在这个问题上有着相同的特性:

它们都包含抽象的方法,所以需要子类(抽象类)和实现类(接口)来将方法具体完成.

onclicklisener的匿名实现中,可以理解为接口和抽象是类似的.


但接口和抽象类在其他用法上是有所区别的:

  1. 一个类可以实现多个接口,但只能继承一个抽象类.

  2. 接口一般不包含属性字段,但抽象类则大多包含

  3. 抽象类中可以有具体的方法(小部分抽象),但接口中的方法都是抽象的

单就我的理解,接口和抽象类最大的区别就在于

抽象类属于类的范畴,继承了抽象类就代表是这个类家族中的一员了.(哈士奇是狗的一员)

接口则代表着具有这个功能(人学狗叫就能与狗交流)

onclicklisener 其实代表的就是能够响应点击事件,而这个行为无论是Activity亦或是自定义的View都可以做到,实现

所以做成接口最为合适.


以上就是我对接口和抽象类的一点浅见.如有错误之处,还请指正.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312584    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

为什么实现的是onclicklisener这个接口,却将其称为外部类呢?莫非是接口也是抽象类的一种,也就相当于继承了父类?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信