用一个接口来定义一个变量,是什么用法,哪位能给讲解一下,代码如下:接口public interface Happy {
void SayHappy();
}
类 
public class People implements Happy {
 
@Override
public void SayHappy() {
// TODO Auto-generated method stub
System.out.println("我很快乐!");
}
 
}
测试类 public class Test3 {
public static void main(String[] args) { Happy happy1 = new People();
              
                People  happy2 = new People();   happy1.SayHappy();                happy2.SayHappy(); }
}请问这  两个 对象 实例  happy1和happy2 有什么区别谢谢大家

解决方案 »

  1.   

    两个对象是没有区别的,要说区别就是happy1在调用方法的时候只能调用Happy接口中声明的方法,而happy2在调用方法可以调用People中声明的方法。
      

  2.   

    就把接口当成是一种特殊的继承。由于java的继承机制,一个类只能继承一个类。为了解决多个继承的问题,才引入接口的概念。
      

  3.   

    用接口定义变量的好处在于对象之间的转换,举个例子吧,
    如果你再有另外一个类也实现happy这个接口,当你需要对这个类以及之前实现的类(people)进行处理的时候(分别去调用他们的sayhello方法),假如你写一个工具类来完成这个跳板,你需要把这个对象传给工具类,另外一个对象也要传,但是工具类中如果你接收的参数对象是已经限定的实体类,那你需要写两个方法,但是有时候我们并不在乎他传进来的是那个对象,我只是要调用他的sayhello方法,这个时候你接收的对象就可以是一个接口,只要这个类实现了这个接口,都可以用来当做参数传递。你这样自己写是看不出来很大的好处,只有你去调用别人的方法时,你会看到他们接收的参数,很多都是接口对象,但这个对象并不是接口,只是实现了这个接口的一个对象。