[javaSE笔记6]接口
Interface
接口的定义和介绍
接口 (interface) 就是多个类的公共规范
接口是一种引用数据类型, 最重要的内容就是其中的 : 抽象方法
定义一个接口的格式 :
public interface 接口名称 { }
接口中可以包含的内容有 :
- 常量
- 抽象方法
Java8后可以额外包含 :
-
默认方法
-
静态方法
Java9后可以包含 :
- 私有方法
接口中的抽象方法的修饰符必须是 : public abstarct
public interface MyInterface01 {
public abstract void method01();
public abstract void method02();
}
也可以省略不写 ( 默认就是public abstract ) :
public interface MyInterface01 {
void method01();
void method02();
}
接口的实现与使用
接口不能直接使用, 必须有一个"实现类"来实现该接口
格式 : public class 类名 implements 接口名 { }
接口的实现类必须覆盖重写 ( 实现 ) 接口中所有的抽象方法, 除非实现类就是抽象类
接口 :
public interface MyInterface01 {
void method01();
void method02();
int method03();
}
实现类 :
public class demo01 implements MyInterface01 {
@Override
public void method01() {
System.out.println("method01");
}
@Override
public void method02() {
System.out.println("method02");
}
@Override
public int method03() {
return 0;
}
}
使用 :
public static void main(String[] args) {
demo01 demo = new demo01();
demo.method01();
demo.method02();
demo.method03();
}
默认方法
可以直接在接口中定义, 实现类不需要覆盖重写 ( 也可以覆盖重写, 在使用时如果没有重写, 就会向上查找 )
public interface MyInterface01 {
void method01();
void method02();
public default void methodDefault() { // 默认方法
...
}
}
静态方法
public interface MyInterface01 {
void method01();
void method02();
public static void methodStatic() { // 默认方法
...
}
}
注意 : 静态方法不可以通过接口实现类的对象来调用, 而应该通过接口名称, 直接调用其中的静态方法
正确的调用 : MyInterface01.methodStatic()
私有方法
- 普通私有方法
- 静态私有方法
解决接口内部重复代码的问题
常量
接口当中的常量, 定义必须使用
public static final
进行修饰( 可省略 ), 必须赋值
常量的推荐命名方式 : 使用完全大写, 并且使用下划线进行分隔
几个注意事项
- 接口是没有静态代码块或者构造方法的
- 一个类的直接父类是唯一的, 但是一个类可以同时实现多个接口
public class XX implements interfaceA, interfaceB { }
- 如果实现类所实现的多个接口当中, 存在重复的抽象方法, 那么只需要覆盖重写一次