interface Speak

 void speak();
}
class UserOne implements Speak
{
     public void speak(){
     System.out.println("我爱这个游戏");
 }
}
class UserTwo implements Speak{
     public void speak(){
    System.out.println("我想去清华大学");
   }
}
class Listener
{
public void listen(Speak someone){
     someone.speak();
    }
}
public class Example
{
public static void main(String args[]){
   Listener listener = new Listener();
   listener.listen(new UserOne());
   listener.listen(new UserTwo());

}
}
上面程序中
class Listener
{
public void listen(Speak someone){
     someone.speak();
    }
}
是什么意思,那位哥哥姐姐帮忙解释一下,谢谢!!!

解决方案 »

  1.   

    在listen方法中调用Speak接口方法,而不管实现Speak接口的具体类是什么。
      

  2.   

    class Listener
    {
    public void listen(Speak someone){
    someone.speak();
    }
    }
    这里面用接口Speak作为形式参数,在运行时候要求传入的 是实现了Speak接口的具体类的实例,比如说你main代码里面的 new UserOne() 返回的就是UserOne的一个实例,为什么可以用UserOne就是因为UserOne类承诺实现了Speak接口,有class UserOne implements Speak这个声明,并具体实现了这个接口行为如果一个类不实现Speak接口,那么传入参数就会报编译错误,比如你listener.listen(new Object());