接口interface
接口
定义:接口是一种特殊的抽象类,它不能包含普通方法。
语法格式:
[修饰符]interface 接口名 [extends 父接口]{
[public][static][final] 常量类型 常量名 = 常量值;
[public][abstract] 方法返回值类型 方法名([参数列表]);
[public] default 方法返回值类型 方法名([参数列表]){
默认方法体
}
[public] static 方法返回值类型 方法名([参数列表]){
类方法的方法体
}
}
与定义类不同的是,在定义接口时,不再使用class关键字,而是使用 interface 关键字来声明接口定义的基本
public interface InterfaceDemo01 { //静态常量 可以省略static和final关键字 public static final int AGE = 18; //抽象方法,可以省略abstract关键字 public void eat(); //静态方法 static void sleep(){ System.out.println("sleep。。。"); } //default方法 default void play(){ System.out.println("play。。。"); } }
常量:默认接口中所有的成员的变显都是省略public static final这几个关键字的,一般接口的成员变量都是大写的
抽象方法:默认接口中的所有成员方法都是省略public abstract的
接口不能被实例化,需要通过实现接口的方法去实现接口中的方法,
在接口中存在抽象方法,也就是说当前类也是一个抽象类,抽象类不能被实例化,
那么就能通过接口的实现类去实现。要实现接口我们要通过implements去实现接口。
class Person implements InterfaceDemo01{ @Override public void eat() { System.out.println("eat方法"); } }
public static void main(String[] args) { InterfaceDemo01 person = new Person(); person.eat(); person.play(); InterfaceDemo01.sleep(); }
运行结果:

接口实现类的特点:
1.如果一个类实现了接口,那么该类就必须实现接口中定义的所有的抽象方法
2.如果一个接口不想实现接口的方法,那么子类必须定义为一个接口或者抽象类
interface Student extends InterfaceDemo01{ } abstract class User implements InterfaceDemo01{ }
实现接口可以多实现
interface InterfaceDemo01 { } interface Student{ } class User implements InterfaceDemo01,Student{ }
接口之间的关系是继承关系,接口之间同样也可以实现多继承
interface Student{
}
interface Doc{
}
interface Teacher extends Student,Doc{
}
类和接口的关系
类和类:单继承。不可以实现
类和接口:单继承,多实现
接口和接口:多继承,不可以多实现

浙公网安备 33010602011771号