接口是抽象类的变体。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。
    接口的好处是,它给出了屈从于Java技术单继承规则的假象。当类定义只能扩展出单个类时,它能实现所需的多个接口。
    接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即,将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。
    接口是用关键字interface来定义的,如下所述:
           public interface Transparency {
             public static final int OPAQUE=1;
             public static final int BITMASK=2;
             public static final int TRANSLUCENT=3;
             public int getTransparency();
           }    类能实现许多接口。由类实现的接口出现在类声明的末尾以逗号分隔的列表中,如下所示:     public class MyApplet extends Applet implements 
       Runnable, MouseListener{
         "..."
       }   下例表示一个简单的接口和实现它的一个类:
    interface SayHello {
        void printMessage();
    }    class SayHelloImpl implements SayHello {
        void printMessage() {
            System.out.println("Hello");
        }
    }    interface SayHello强制规定,实现它的所有的类必须有一个称做printMessage的方法,该方法带有一个void返回类型且没有输入参数。
    对于下述情况,接口是有用的:
    声明方法,期望一个或更多的类来实现该方法。
    揭示一个对象的编程接口,而不揭示类的实际程序体。(当将类的一个包输送到其它开发程序中时它是非常有用的。)
    捕获无关类之间的相似性,而不强迫类关系。
    描述“似函数”对象,它可以作为参数被传递到在其它对象上调用的方法中。它们是“函数指针”(用在C和C++中)用法的一个安全的替代用法。

解决方案 »

  1.   

    http://www.csdn.net/develop/read_article.asp?id=10461http://expert.csdn.net/Expert/topic/2845/2845122.xml?temp=.1531793http://expert.csdn.net/Expert/topic/2820/2820375.xml?temp=.8942377http://expert.csdn.net/Expert/topic/2785/2785298.xml?temp=.5677301
      

  2.   

    Java中的接口和抽象类的区别,在于接口中没有属性,而且所有的方法都是抽象的,
    而抽象类可以有属性,而且可以有抽象方法,也可以有实现的方法。但两者都不能
    被实化。 使用的时候,一个类可以继承多个接口,但只能继承一个抽象类。
      

  3.   

    简单的说,接口就是只定义方法,而不实现方法
    例如
    这就是一个接口例子import java.awt.*;
    import java.awt.event.*;abstract class mankind
    {
    final String name="xuguo";
    int sex;
    int age;
    abstract void profession(String position);
    }

    class student extends mankind
    {
    void profession(String position)
    {
    System.out.println(super.name);
    System.out.println("I am a student."+position);


    }

    class teacher extends mankind
    {
    void profession(String position)
    {
    System.out.println(super.name);
    System.out.println("Iam a teacher."+position);
    }
    } interface animal
    {
    int handnumber=2;
    void model();
    }

    class mankind2 implements animal
    {
    public void model()
    {
    System.out.println("Generally,one person has two hands.");
    System.out.println("one head,two eyes,two ears,like monkey.");
    System.out.println(animal.handnumber);
    }

    }class Overloadexample extends Frame {

    public Overloadexample() {
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    dispose();
    System.exit(0);
    }
    });
    }

    public static void main(String args[]) {
    try
    {
    System.out.println("Starting Overloadexample...");
    Overloadexample mainFrame = new Overloadexample();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("Overloadexample");
    mainFrame.setVisible(true);
    student stu1=new student();
    teacher tch1=new teacher();
    stu1.profession("monitor");
    tch1.profession("headmaster");
    mankind2 person=new mankind2();
    person.model();
    }
    catch(Exception e)
    {
    System.out.println(e);
    }

    }
    }
      

  4.   

    接口里面全是abstract public methods and static public fields
      

  5.   

    Java中的接口和抽象类的区别,在于接口中没有属性,而且所有的方法都是抽象的,而抽象类可以有属性,而且可以有抽象方法,也可以有实现的方法。但两者都不能被实例化。 使用的时候,一个类可以继承多个接口,但只能继承一个抽象类。
      

  6.   

    if (还不明白?)
    去看看圣经《THINK IN JAVA 》是怎么说得。
      

  7.   

    看看这个。【gab第2篇】http://csdn.net/Develop/read_article.asp?id=26260