java:接口参数问题~~~跪求讲解~~~!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:39:03
接口回调:如果一个方法的参数是接口类型,就可以将任何实现该接口类的实例的引用
传递给该接口参数,那么该接口参数就可以回调类实现的接口方法

interface ShowMessage
{void speakHello();
}
class KindHello
{public void lookHello(SpeakHello hello) //接口类型参数
{hello.speakHello(); //接口回调
}
}
public class Example4_29
{public static void main(String args[])
{KindHello.kindHello=new KindHello();
kindHello.lookHello(new Chinese());
kindHello.lookHello(new English());
}
}

传递给该接口参数?这里哪有接口参数啊?接口参数不是要SpeakHello x;这样定义吗?x是接口参数,可这里没有啊 概念是不是说错了?

他的意思是,如果这个方法的的入参是一个接口,那么在这个方法中就可以调用入参的方法。
比如你的例子:
public void lookHello(SpeakHello hello) //接口类型参数
{
hello.speakHello(); //接口回调
}

入参类型为SpeakHello , 是个接口。 在lookhello方法中,就可以调用
SpeakHello 的方法。 hello就是 SpeakHello 接口的实例。
在lookhello方法中不就是调用了 hello.speakHello() 方法嘛

看你上面说的挺好的,怎么写的代码那么多问题呢。

interface ShowMessage
{void speakHello();
}

class KindHello
{public void lookHello(ShowMessage hello) //接口类型参数
{hello.speakHello(); //接口回调
}
}

class Chinese implements ShowMessage {
void speakHello() {
System.out.print("Hello,I am Chinese!");
}
}

class English implements ShowMessage {
void speakHello() {
System.out.print("Hello,I am English!");
}

}

public class Example4_29
{public static void main(String args[])
{KindHello.kindHello=new KindHello();