1.java中的接口的回调
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。
实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。
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。.。
2.Java中什么是接口回调
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。
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.
3.JAVA中 接口是什么
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
看下面示例。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.再来看看向上转型(upcasting)的概念。
用 Java 接口实现回调函数的等价功能熟悉 MS-Windows 和 X Window System 事件驱动编程模型的开发人员,习惯于传递在某种事件发生时调用(即“回调”)的函数指针。Java 的面向对象模型目前并不支持方法指针,Java 的接口支持提供了一种获得回调的等价功能的机制。
其技巧就是:定义一个简单接口,并在该接口中声明我们要调用的方法。假定我们希望在某个事件发生时得到通知。
我们可以定义一个接口:InterestingEvent.javapackage org.zj.sample;public interface InterestingEvent { public void interestingEvent ();}这使得我们可以控制实现该接口的类的任何对象。因此,我们不必关心任何外部类型信息。
发出事件信号的类必须等待实现了 InterestingEvent 接口的对象,并在适当时候调用 interestingEvent() 方法。EventNotifier.javapackage org.zj.sample;public class EventNotifier { private InterestingEvent ie; private boolean somethingHappened; public EventNotifier(InterestingEvent event) { ie = event; // 保存事件对象以备后用。
somethingHappened = false; // 还没有要报告的事件。 } public void doWork() { if (somethingHappened) { // 检查设置的谓词。
ie.interestingEvent();// 通过调用接口的这个方法发出事件信号。 } } public void setHappened(){//设置谓词。
somethingHappened=true; }}在上例中,使用 somethingHappened 谓词来跟踪是否应触发事件。希望接收事件通知的代码必须实现 InterestingEvent 接口,并将自身引用传递给事件通知程序。
CallMe.javapackage org.zj.sample;public class CallMe implements InterestingEvent { @SuppressWarnings("unused") private EventNotifier en; public CallMe() { // 注意 EventNotifier (InterestingEvent event),应该传递一个接口类型。 // 而下面将this,即实现了InterestingEvent接口的CallMe实例传递给//EventNotifier。
也就是所谓的接口回调了。 en = new EventNotifier(this); // 创建事件通知程序,并将自身引用传递给它。
} // 为事件定义实际的处理程序。
4.java 如何写回调方法
public class Caller
{
public MyCallInterface mc;
public void setCallfuc(MyCallInterface mc)
{
this.mc= mc;
}
public void call(){
this.mc.method();
}
}接口
public interface MyCallInterface
{
public void method();
}测试
public class B implements MyCallInterface
{
public void method()
{
System.out.println("回调");
}
public static void main(String args[])
{
Caller call = new Caller();
call.setCallfuc(new B());
call.call();
}
}
5.java什么叫接口的回调
具体怎么解释可能不是特别好解释啊。.
给你看看刚写的一段程序好了。很容易理解的。
interface Msg{
void showMessage();
}
class NbMsg implements Msg{
public void showMessage() {
System.out.println("123456");
}
}
class CahrMsg implements Msg{
public void showMessage() {
System.out.println("abcdef");
}
}
public class test {
private Msg msg;
public void show() {
System.out.println("处理一些东西");
msg.showMessage();
}
public void setMsg(Msg msg) {
this.msg = msg;
}
public static void main(String[] args) {
test a = new test();
a.setMsg(new CahrMsg());
a.show();
a.setMsg(new NbMsg());
a.show();
}
}结果是:
处理一些东西
abcdef
处理一些东西
123456
6.java 接口回调例子怎么像抽接口
(1)先定义一个接口 1 package JieKouHuiDiao;2 //定义一个接口3 public interface JieKou {4 public void show();5 } (2)定义一个Boss类实现接口 1 package JieKouHuiDiao; 2 3 public class Boss implements JieKou{ 4 //定义一个老板实现接口 5 @Override 6 public void show() { 7 System.out.println("知道了"); 8 } 9 10 } (3)定义一个员工Employee类 1 package JieKouHuiDiao; 2 3 public class Employee { 4 //接口属性,方便后边注册 5 JieKou jiekou; 6 //注册一个接口属性,等需要调用的时候传入一个接口类型的参数,即本例中的Boss和Employee, 7 public Employee zhuce(JieKou jiekou,Employee e){ 8 this.jiekou=jiekou; 9 return e;10 }11 public void dosomething(){12 System.out.println("拼命做事,做完告诉老板");13 //接口回调,如果没有注册调用,接口中的抽象方法也不会影响dosomething14 jiekou.show();15 }16 17 } (4)测试类 package JieKouHuiDiao;public class Test {public static void main(String[] args) {Employee e=new Employee(); //需要调用的时候先注册,传入Boss类型对象和员工参数Employee e1=e.zhuce(new Boss(),e);e1.dosomething();}}。
7.java 回调函数或回调接口是一样的吗
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java的RMI都用到回调机制,可以访问远程服务器程序。
同在一个系统里面的时候可以不使用回调接口,因为知道如何回调。一般来说都是回调接口的,因为接口告诉你如何回调,但是如果你已经知道如何回调的时候,可以不实用接口。
转载请注明出处育才学习网 » java回调接口怎么写