接口回调

接口回调
egg:    a:demo类(调用打印)  b:打印类    c:打印接口,其中有抽象方法suc()和fail()    a调用b的打印方法时传入c接口的实现类,b的这个打印方法中在合适的位置去调用a传入的接口的对应方法

1)定义接口: 定义一个接口、定义其中的抽象方法、抽象方法含有参数(被传递的数据);
2)编写回调方法: 在定义接口的类中,编写用户回调的方法,要传递一个接口对象实例,让别的类去实现。(相当于为接口成员变量赋值)
3)为抽象方法赋值: 获取一个全局的接口成员变量,在某个事件中使用接口成员变量调用接口中的方法,并且为抽象方法中的参数赋值。(这一步可以在回调方法中实现)
在另一个页面,在合适的时机,创建此类的实例,调用类中的回调方法,为接口对象赋值this,即可实现回调。

需要一个接口的实现类:
1)让当前Activity实现接口,变成接口的实现类;
2)写一个类去实现接口,实现其中的抽象方法,然后在需要的地方创建一个接口实现类的子类对象
3)直接在当前位置使用匿名对象实现,创建一个接口实例。

回调原理:
接口调用自己的抽象方法,相当于接口的实现类调用实现类中重写的抽象方法;

接口中没有构造函数:
1)接口中是没有构造函数的,不能直接创建对象,只能由实现类创建对象;接口中的成员常量不需要进行初始化,所以不需要构造函数。
2)而抽象类是有构造方法的,为了给子类调用初始化抽象类中的成员变量。

接口的特点:
1)接口用关键字interface表示;类实现接口用implements表示。
2)接口不能实例化:那么,接口如何实例化呢?按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。
3)接口的子类:要么是抽象类,要么重写接口中的所有抽象方法。

接口中的成员:
成员变量:只能是常量  默认修饰符 public static final(不能被修改)
构造方法:没有,因为接口主要是扩展功能的,而没有具体存在
成员方法:只能是抽象方法  默认修饰符 public abstract(可以省略)

类与类,类与接口以及接口与接口的关系:
类与类: 继承关系,只能单继承,但是可以多层继承
类与接口:实现关系,可以多实现,还可以在继承一个类的同时实现多个接口。

接口与接口:继承关系,可以单继承,也可以多继承。

https://blog.csdn.net/qq379454816/article/details/51546638

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值