interface Srinterface
{
float x=30.5f;
float y=4.6f;
float total();
}
public class Srface implements Srinterface
{
float dollar,money;
Srface(float a,float b)
{
dollar=a;money=b;
}
public float total(){return x*dollar+money/y;}
public static void main(String args[])
{
Srface Srf=new Srface(120,4000);
System.out.println("美金="+Srf.dollar);
System.out.println("人民币="+Srf.money);
System.out.println("折合台币="+Srf.total());
}
}我对于接口很感冒,这里如果不用接口,用其它实现呢.接口有什么独特的优势,请大哥们就针对这个程序进行说明,好吗??

解决方案 »

  1.   

    接口可以看成一种行为的抽象,它代表的是一种行为的表示,比如说飞,除了麻雀之类的鸟会飞,像苍蝇,飞机之类的东西也会飞,那么我们就可以把飞定义成一种接口,别的东西都可以有这种行为,但是拥有这种行为的东西必须自己去解决如何飞的问题。抽象类的话已经是一种物体的抽象,除了行为之外,还具有表现特性,比如上面提到的麻雀、海鸥这样的鸟,它们有太多相似的地方,除了行为之外、外面表现也只乎一样,那么它们就可以抽象成抽象类鸟,可能会规定抽象类鸟都有一对翅膀或一对脚,而且有飞的能力,但是鸟不实现这种飞的能力,也许只实现了走的行为,飞就抽象化了,比如驼鸟就不会飞,但鸟的都是一样的,所以各种鸟要自己实现飞,而不用自己实现走。对你这程序来说,用不用接口或抽象类都没有关系,一点好处也不会有。除非你有多个类似于Srface 类的类,那么他们的行为就可以统一了,都是total()
      

  2.   

    java 多态的表现. 非常重要的东西.
      

  3.   

    简单一点说,就是接口是体现继承的表现,一个类可以实现多个接口,就像c++中,一个类可以继承多个类,
    还有接口是完全抽象的封装,相当于c++中的纯虚概念,他和抽象类的不同在于抽象类中可以有自己简单的实现以及可以有非abstarct的成员方法,
    比如:
    abstract class Door{
    abstract void open();
    abstract void close();
    abstract void alarm();
    }interface Door{
    void open();
    void close();
    void alarm();
    }class AlarmDoor extends Door{
    void open(){…}
    void close(){…}
    void alarm(){…}

    class AlarmDoor implements Door{
    void open(){…}
    void close(){…}
    void alarm(){…}
    }