接口就是多个类的公共规范;
接口是一种引用数据类型,最重要的内容就是其中的抽象方法
【定义接口格式】:用interface关键字声明接口
public interface 接口名称{
接口内容
}
定义接口示例:
/* 注意事项: 1、接口当中的抽象方法,修饰符必须是两个固定的关键字 public abstract 2、这两个关键字修饰符,可以选择性地省略 3、方法的三要素,可以随意定义 */ public interface MyInterfaceAbstract { //抽象方法 public abstract void methodAbs(); abstract void methodAbs2(); public void methodAbs3(); void methodAbs4(); }
【备注】:
Java版本不同,接口中可包含内容不同
Java 7:常量、抽象方法
Java 8增加:默认方法、静态方法
Java 9增加:私有方法
【接口的使用步骤】:
1、接口不能直接使用(复习,抽象类也不能直接使用),必须是一个[实现类]来“实现”该接口,关键字:implements
实现类格式:
public class 实现类名称 implements 接口名称{
...
}
2、接口的实现类必须覆盖重写(实现)接口中所有的抽象方法(注意:如果没有全部重写,实现类自身必须是抽象类)
覆盖重写(实现)格式:去掉abstract关键字,补全方法体大括号
3、创建实现类的对象,通过对象来使用接口
实现类示例:
public class MyInterfaceAbstractImpl implements MyInterfaceAbstract { @Override public void methodAbs() { System.out.println("这是第一个方法"); } @Override public void methodAbs2() { } @Override public void methodAbs3() { } @Override public void methodAbs4() { } }
上述接口的使用示例:
public class Demo01Interface { public static void main(String[] args) { //错误写法,不能直接new接口对象使用 //MyInterfaceAbstract inter = new MyInterfaceAbstract(); //创建实现类的对象使用 MyInterfaceAbstractImpl impl = new MyInterfaceAbstractImpl(); impl.methodAbs(); impl.methodAbs2(); } }
小结:
1、接口不能被实例化
2、接口中的方法是抽象方法,但是 abstract 可以省略;
3、接口的实现类必须将接口中的所有方法 都 实现(重写);
4、接口中的属性:int x = 0 ; 等价于 public static final x = 0;