Java接口回调技术

来源:互联网 发布:苹果手机信号增强软件 编辑:程序博客网 时间:2024/06/03 21:33

接口变量和回调机制
在java语言中,接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口方法。实际上,当接口变量调用被类实现的接口方法是,就是通知相应的对象调用这个方法。

interface ShowMessage{    void image(String s);}class TV implements ShowMessage{    public void image(String s){        System.out.print("@@@@@@@@@@"+s+"@@@@@@@@");    }    public void lookTV(){        System.out.print("看电视");    }}class PC implements ShowMessage{    public void image(String s){        System.out.print("@@@@@@@@@@"+s+"@@@@@@@@");    }    public void lookPC(){        System.out.print("看电脑");    }}public class Example(){    public static void main(String [] args){        ShowMessage sm; //声明接口变量        sm = new TV();  //接口变量中存放对象的引用        sm.image("TV"); //接口回调        sm.lookTV();//报错        sm = new PC();        sm.image("PC");        sm.lookPC();//报错    接口变量不能访问类的原有方法,只能访问类实现的接口方法。    }}

接口和抽象类(abstract)的比较
(1)abstract类和接口都可以有abstract方法。
(2)接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。
(3)abstract类中也可以有非abstract方法,接口不可以。
如果某个问题需要使用继承才能更好地解决,子类除了需要重写父类的abstract方法外,还需要从父类继承一些变量或继承一些重要的非abstract方法,就可以考虑用abstract类。
如果某个问题不需要继承,只是需要若干个类给出某些重要的abstract方法的实现细节,就考虑使用接口。
设计框架是应满足“开-闭”原则,当用户程序需要改变时,只需要简单的改变框架即可。

0 0
原创粉丝点击