接口的用法

对于安卓开发者来说,接口大家平时都有接触过,按钮的点击事件就是一个接口回调事件,那么大家知道如何自己定义一个接口,来提供给外部使用吗?提到接口,我们先来分析一下什么时候可以用到接口,先来谈第一种情况,打个比方,我们在家里装了一个监控,我们在监控做了一些设置,如果有小偷进来,监控就会向我们的手机发送报警讯息,这里,按钮对象就像我们的家,OnClickListener代表监控,setOnClickListener表示安监控这个动作,onClick方法是监控发现小偷进来了,我们可以在这里对监控做报警设置,转换成代码就是home.setMonitor(new Monitor( public void  thiefCome( send message( ) )));

下面给大家演示一个完整的代码过程

1.接口方法用于回调 (这里定义接口是为了使用其接口方法):
//此处定义一个接口,该接口为抽象类,里面
//定义方法,但未实现具体逻辑
public interface ICallback { 
   public void func(); 
} 
public class Caller { 
    //在一个类里定义一个接口
    ICallback callback; 
    
    //当doCallback方法被调用时,接口方法被调用
    public void doCallback() { 
 	  callback.func(); 
    } 
    //通过外界传入一个接口对象	   
    public void setCallback(ICallback callback) { 
    this.callback = callback; 
    } 	   
} 
public class MainClass { 
  public MainClass() { 
  } 	   

public static void main(String[] args) { 
   Caller caller = new Caller(); 
   caller.setCallback(new ICallback () { 
   public void func() { 
   System.out.println("dosth"); 
   } 
 }); 

   caller.doCallback(); 

   } 
}
以上演示的是第一种情况,还有一种情况就是向上转型,这一点和定义父类继承很像,但是我们知道,子类只能继承一个父类,不能实现多继承,但是接口是可以多实现的,这个不难,大家看我给的例子就能明白第二种用法
2.接口用于向上转型
interface People{ 
void peopleList(); 
} 


class Student implements People{ 
    public void peopleList(){ 
       System.out.println("I’m a student."); 
    } 
} 

class Teacher implements People{ 
    public void peopleList(){ 
        System.out.println("I’m a teacher."); 
    } 
} 


public class Example{ 
   public static void main(String args[]){ 
   People a;             //声明接口变量 
   a=new Student();      //实例化,接口变量中存放对象的引用 
   a.peopleList();        //接口回调 
   a=new Teacher();     //实例化,接口变量中存放对象的引用 
   a.peopleList();       //接口回调 
   } 
} 
运行结果: 
I’m a student. 
I’m a teacher.

OK,接口的用法就给大家介绍这么多,希望能给大家一些帮助

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值