Java中的接口可以理解为一种规范(接口可被继承),其内部可定义常量和抽样方法等内容,其中抽样方法必须被实现类(可理解为子类)重写,因此我们可以将接口看作一种子类的规范。

       接口关键字是Interface,格式如下:

public interface 接口名(){}

接口的代码示例:

public interface Demo {
    //jdk8之前 接口中只能由抽象方法和常量
    public static final String name="小明";//常量 public static final可以不写
    //规范默认是公开的 public abstract 不写也可以
    public abstract void play();//抽象方法

}

子类通过implements来实现接口,我们把这样的实现接口的类叫做实现类。

代码示例如下:

public interface People {
    void study();//人要学习
}
public interface Teacher {
    void teach();//教学
    void read();//阅读
}
public class Student implements Teacher,People {
    private String name;

    public Teacher(String name) {
        this.name = name;
    }

    @Override
    public void Teach() {
        System.out.println(name+"要教学");
    }

    @Override
    public void read() {
        System.out.println(name+"进行阅读");

    }

    @Override
    public void study() {
        System.out.println(name+"要学习");
    }
}

一个实现类可以实现(可理解为继承)多个接口。

在一个项目需要增加抽象方法时,则其每个实现类中均要进行修改,此过程较为繁琐,因此在jdk8之后接口中接口中可以定义一些带有特定关键字的方法。

所以在jdk8之后,在接口中的新增的方法可使用default做修饰(称为默认方法),便可在相应的进行实现(继承)的实现类(子类)进行调用了。还有一种私有方法,需要用private修饰,只能被本类中的其它的默认方法或私有方法访问。

格式如下:

default void sport(){
System.out.println("锻炼身体");
}