Java接口回调技术
2015-11-26 16:53
489 查看
接口变量和回调机制
在java语言中,接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口方法。实际上,当接口变量调用被类实现的接口方法是,就是通知相应的对象调用这个方法。
接口和抽象类(abstract)的比较
(1)abst
4000
ract类和接口都可以有abstract方法。
(2)接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。
(3)abstract类中也可以有非abstract方法,接口不可以。
如果某个问题需要使用继承才能更好地解决,子类除了需要重写父类的abstract方法外,还需要从父类继承一些变量或继承一些重要的非abstract方法,就可以考虑用abstract类。
如果某个问题不需要继承,只是需要若干个类给出某些重要的abstract方法的实现细节,就考虑使用接口。
设计框架是应满足“开-闭”原则,当用户程序需要改变时,只需要简单的改变框架即可。
在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)abst
4000
ract类和接口都可以有abstract方法。
(2)接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。
(3)abstract类中也可以有非abstract方法,接口不可以。
如果某个问题需要使用继承才能更好地解决,子类除了需要重写父类的abstract方法外,还需要从父类继承一些变量或继承一些重要的非abstract方法,就可以考虑用abstract类。
如果某个问题不需要继承,只是需要若干个类给出某些重要的abstract方法的实现细节,就考虑使用接口。
设计框架是应满足“开-闭”原则,当用户程序需要改变时,只需要简单的改变框架即可。
相关文章推荐
- Java线程的生命周期
- spring 配置事务传播特性
- .bat set java environment
- Java输入输出流
- java验证码生成的基本流程
- 在ubuntu中安装jdk以及环境配置
- 使用Struts2简单的基本文件上传下载实现
- java 两个时间字符串的时间差
- Ubuntu configuration Java environment
- SpringMVC工作原理
- spring 配置文件属性
- JAVA8新特性
- Spring集成ActiveMQ配置 --转
- 简单使用Struts2 实现上传下载功能
- javaWeb 复习系列(一)
- 使用Proxy.newProxyInstance()代理时,报错java.lang.ClassCastException: com.sun.proxy.$Proxy61
- Java.sql.Types,数据库字段类型,java数据类型的对应关系
- maven + SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- Java 中的 Synchronized关键词
- 菜鸟学Java----继承