接口就是多个类的公共规范
接口是一种引用数据类型,最重要的内容就是其中的:抽象方法
如何定义一个接口:
public interface 接口名称 {
//接口内容
}
接口内容可以有:常量,抽象方法
接口中定义抽象方法的格式:
public abstract void 方法名称(){}
public abstract void methob();
接口的抽象方法中必须有这两个修饰符 public abstract
接口抽象方法的使用
接口不能直接使用抽象方法,需要有实现类来实现接口
public class 实现类名称 implements 接口名称{ // }
public class Shix implements Jiek { @Override public void methob() { }
需要覆盖重写(去掉adbtract)加上大括号 测试类测试并且调用
public class Ces { public static void main(String[] args) { Shix shi = new Shix(); shi.methob(); shi.methob1(); } }
接口里定义默认方法
格式:public default 返回值类型 方法名称(参数列表){ 方法体 }
默认方法也可以被覆盖重写
public default void methob1(){ System.out.println("这是默认方法"); } public void methob1(){ System.out.println("已被重写"); }
接口里定义静态方法
public static void 静态方法名(){ 方法体 }
只能通过接口名.静态方法名 来调用
public static void methob2(){ System.out.println("这是静态游戏"); } Jiek.methob2();
接口私有方法
普通私有方法:解决多个默认方法之间重复代码问题 private 返回值类型 方法名称(){ // 方法体 }
静态私有方法:解决多个静态方法之间的代码重复问题 private static 返回值类型 方法名称(){ //方法体 }
接口的常量定义和使用
接口当中也可以定义成员变量 但是必须使用 public static final三个关键字进行修饰 从效果上来看这其实就是接口的常量
public static final 数据类型 常量名称 = 数据值; 一旦赋值就不可修改 接口中的常量必须进行赋值
建议命名规则:字母完全大写并用下划线分割
public static final int i = 1;
继承父类并实现多个接口的
接口是没有静态代码块或者构造方法的
一个类的直接父类是唯一的但是一个类可以同时拥有多个接口