Java - 抽象类与接口

作为困扰了太久的两个概念以及它们的用法,下面简单分析并介绍

抽象类:java中,包含抽象方法的类为抽象类,同时,抽象类中也可以包含其他的非抽象方法,抽象类里的abstract方法必须要在子类中进行继承实现;另外:抽象类不可以初始化对象

接口:接口相比于抽象类,更多是行为上的实现,即不同的多个类,都可以实现同一个接口的动作,这里写图片描述



说到接口,必须不能不说的另一个概念是Android里的Listener概念,也可以称为回调或者监听,回调是指两个类之间的关系,接口即是为两个类实现回调的一个桥梁,无论是接口的回调,还是监听,都是通过两个类来做的。
详情可参见第二个参考资料,内容大概如:
(1)类A实现了接口I,类A作为回调行为的执行者
(2)类B持有类A对象的成员,或者类B中有函数,是以类A为参数


回调的流程为:
(1):类A实现了接口的内容,即待调用的实现部分;
(2):类A中将自身作为成员变量(函数参数)传递给类B;
(3):通过(1)和(2),已经有了等待回调的内容,在类A中,以及去发起回调的持有者,即类B
通过这个流程,可以发现,所谓的回调,不外乎就是通过接口去定义了一个行为,这个定义行为的内容也是在一个类A里,然后这个类A将自身(包含接口定义的行为)传递给类B,最后类B直接启用了类A里的接口定义的行为,从而实现了回调



再回来看Android里的Listener机制,首先Activity或者单独使用类去实现了View里的Listener接口:即按键出发的行为,然后传给了View里面,不管是Button还是其他的控件,最后在点击按键的时候,是在View的按键事件里调回给了Activity里的函数



另外的一个疑问是接口里的函数必须都实现,那是否在实现回调的时候,需要有多个类呢,解决接口中多个函数都需要继承的方法,就是在类中建立接口,可以分散接口的多个地方创建于继承的繁琐

参考资料:
http://www.importnew.com/18780.html
http://blog.csdn.net/xiaanming/article/details/8703708/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值