接口:interface
实现接口:implements
接口格式
public interface 接口名称{
//常量
//抽象方法
//静态方法
//默认方法
//私有方法
}
里面包含常量、抽象方法、静态方法、默认方法、私有方法,最主要的还是里面的抽象方法
抽象方法定义格式:
public interface 接口名称{
public abstract void 抽象方法名称();
}
抽象方法使用abstract修饰,public abstract 可以省略,两个一起省略或者省略其中一个都是可以的
默认方法定义格式:
public interface 接口名称{
public default void 默认方法名称(){
//方法体
}
默认方法使用default关键字修饰,public可以省略不写,但default不能省略,默认方法主要给子类覆盖重写或者调用。
静态方法
public interface 接口名称{
public static void 静态方法名称(){
//方法体
}
}
静态方法使用static关键字修饰,public可以省略不写,静态方法只能接口来进行调用,不能通过实现类对象来调用,也不能被实现类所继承或者重写,静态方法只跟接口有关。
私有方法
public interface 接口名称{
private void 私有方法名称(){
//方法体
}
private static 私有方法名称(){
//方法体
}
}
私有方法分为:普通私有方法、静态私有方法。
私有方法使用private关键字修饰,供默认方法和静态方法使用。
接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的(只有方法,而没有方法体)
接口中只有抽象类和抽象方法
抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类
.一个类可以实现不止一个接口。
一个接口可以继承于另一个接口,或者另一些接口,接口也可以继承,并且可以多继承。
一个类如果要实现某个接口的话,那么它必须要实现这个接口中的所有方法。.接口中所有的方法 都是抽象的和public的,所有的属性都是public,static,final的。
.接口用来弥补类无法实现多继承的局限。
例:
USB接口:其中规定了要实现USB接口就必须实现接口规定实现的read( )和write( )这两个方法
interface USB {
void read();
void write();
}
然后在写一个U盘类和一个键盘类,这两个类都去实现USB接口
class YouPan implements USB {
@Override
public void read() {
System.out.println("U盘正在通过USB功能读取数据");
}
@Override
public void write() {
System.out.println("U盘正在通过USB功能写入数据");
}
}
class JianPan implements USB {
@Override
public void read() {
System.out.println("键盘正在通过USB功能读取数据");
}
@Override
public void write() {
System.out.println("键盘正在通过USB功能写入数据");
}
}
测试类
public class Main {
public static void main(String[] args) {
//生成一个实现可USB接口的U盘对象
YouPan youPan = new YouPan();
//调用U盘的read( )方法
youPan.read();
//调用U盘的write( )方法
youPan.write();
//生成一个实现可USB接口的键盘对象
JianPan jianPan = new JianPan();
//调用键盘的read( )方法
jianPan.read();
//调用键盘的write( )方法
jianPan.write();
}
运行结果如下