接口
(一.)基本接口:极端抽象类(原来的理解:接口中全部都是抽象方法)
(1)接口中的方法全是抽象方法
(2)接口中的成员变量全是常量
(3)接口中的所有成员权限都是 public
(4)修饰符 interface,不是 class
public interface interfaceDemo {
int STATE_SUCCESS=100;//默认是public static final
void test();//默认是public abstract
}
(二.)jdk8接口新增语法
( 1 )默认方法:default定义,被实现类对象继承调用
/* 1.jdk8新增—默认方法
* 2.可以写方法实体*/
static void show() {
System.out.println("jdk8接口-默认方法");
}
( 2 )静态方法:static定义,用接口名称进行调用
/* 1.jdk8新增—静态方法
* 2.可以写方法实体*/
static void show() {
System.out.println("jdk8接口-静态方法");
}
(三.)函数式接口:接口中有且只有一个抽象方法,这种接口称为函数式接口
//1.该注解用来标注该接口是一个函数式接口
//2.该标注绘检查该接口是否符合函数式接口的要求
@FunctionalInterface
public interface FooFunctionalInterface{
void foo();//有且只有一个抽象方法
}
(四.)接口中可写:常量、抽象方法、默认方法、静态方法
(五.)接口实现类
1.实现某个接口的类,称为接口实现类
2.通常接口实现类会以 Impl 为结尾
3.接口实现类需要实现接口中所有抽象方法
4.接口实现类和接口之间是一个实现关系,属于继承,实现类和接口之间是多态关系
(六.)类与接口的关系:
1.类与接口之间是实现关系,类可以同时实现多个接口,用 implements 关键字进行
interface B
interface C
interface D
class A implements B,C,D
class A extends Object implements B,C,D
2.抽象类与接口之间是实现关系,用 implements 关键字进行描述
3.接口与接口之间是继承关系,支持接口的多继承,用 extends 关键字进行描述
interface B`
interface C
interface D
interface A extends B,C,D