接口的创建及使用

接口是全局变量和公共的抽象方法集合。它也是一种定义数据类型的方式,与类相比

  相同之处:都是成员变量和成员方法也可以形成继承关系。

  不同之处:接口中的属性都是常量(final)接口中的方法是抽象方法(没有方法体)

引入接口的原因:java只支持单重继承,每个类只能有一个父类。但实际中有时候需要多重继承----使用接口,一个类可以实现多个接口。

  接口定义的格式:

  

    ①【public】②interface ③接口名{

    【public】【static】【final】数据类型 属性名=常量值;  //全局常量

    【public static】返回值类型 方法名(【形参表】);  //抽象方法

}

//①表示可以被不同包中的类或接口使用,缺省时具有包内可访性

//②关键字表示接口

//③任意有效标识符

interface A{            //    定义接口A
    public static final String name="赵小树";        //全局常量
    public abstract void print();            //抽象方法
    public abstract String getinfor();    //抽象方法
}
    /*
                                           ||
                                           ||
                                        等价于
                                           ||         
                                           ||
*/
interface A{
    String name="赵小树";
    void print();
    String getinfor();

实现接口

  接口定义后不能直接创建对象,必须由子类实现接口。每个子类可以实现多个接口。实现接口的子类定义格式如下:

  class 子类名 ①implements 接口1,接口2,...{

    //

}

注意:类实现接口,就继承了接口中所有成员变量和成员方法。由于接口中的方法都是抽象的,因此实现接口的类必须重写这些方法。 

interface A{
    String name="赵小树";
    void print();
    String getinfor();
}
interface B{
    void say();
}
class X implements A,B{
    public void say(){
        System.out.println("Hello World");
    }
    public String getinfor(){
        return "hello";
    }
    public void print(){
        System.out.println("作者:"+name);
    }
}
public class five5{
    public static void main(String[] args){
        X x=new X();
        x.say();
        x.getinfor();
        x.print();
    }
}

一个子类同时实现多个接口,实际上就摆脱了java的单继承局限。

原文地址:https://www.cnblogs.com/l666/p/9473735.html