Java中的接口

在上一篇Java中的抽象类中提到抽象类,现在讲一个和它很像的东西“接口”,为什么说它和抽象类很像呢?因为接口也是抽象的,它一样不实现具体的代码,下面就是一段关于接口的代码

interface Base{
    void hello();
}

class A implements Base{
    public void hello(){
        System.out.println("hello A");
    }
}

public class app {
    public static void main(String[] args){
        A a = new A();
        a.hello();
    }
}

// hello A

Java通过interface来定义接口,通过implements来实现具体代码。这真的非常像抽象类abstract,那么它和抽象类有什么区别呢?接口里面的方法必须是抽象方法,而抽象类里面的方法则根据你自己来定义。另外一个比较大的区别就是,一个接口可以继承至多个接口,而抽象类则不能,继承至多个接口通过逗号隔开。以下是一个继承至多个接口的例子。

interface Base{
    void hello();
}
interface Base2{
    void hello2();
}

interface Base3 extends Base,Base2{
    void hello3();
}

class A implements Base3{
    public void hello(){
        System.out.println("Hello 1");
    }
    public void hello2(){
        System.out.println("Hello 2");
    }
    public void hello3(){
        System.out.println("Hello 3");
    }
}

public class app {
    public static void main(String[] args){
        A a = new A();
        a.hello();
        a.hello2();
        a.hello3();
    }
}

也就是类体里全部都是抽象方法时,我们就可以把这个类定义为接口。

不过也需要注意一下,再接口中定义的变量或方法默认都是公开的public,所以在实现具体方法时,必须显示的设置,另外一点就是接口中的变量都会成为常量。

那么接口有什么用呢?个人感觉就是用来归类的,还有一点就是,一种规范,其他人能够知道这个接口中都有哪些方法,而不必去关心里面具体是怎么实现的,我们只要调用这个接口就可以了,在自己写库时比较实用。

原文地址:https://www.cnblogs.com/pssp/p/6297760.html