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("锻炼身体");
}