- 接口使用interface关键字来修饰,类是来实现(implements)接口而不是父类子类之间的继承关系了
- 接口是抽象的,实例化方式也可以使用多态方式,叫做接口多态
- 接口是对行为进行抽象
- 接口实现类命名:接口名Impl
- 接口中没有成员变量,只有成员常量,默认会被final修饰,且默认被静态(static)修饰(public)static final 变量类型 变量名;
int num = 0;
//等价于
public static final int num = 0;
- 接口中没有构造方法,所有类都直接或间接地继承了Object类,没有父类,就是用Object类作为父类,此时这个没有父类的子类(或者父类是抽象类/父类没有构造方法/接口没有构造方法),在构造方法中super()方法就是调用Object类中的无参构造方法
- 接口中不能有非抽象方法,接口中的成员方法只能是抽象方法,默认修饰符为public abstract
- 类和接口的关系是实现关系,可以单实现也可以多个实现,还可以在继承一个类的同时实现多个接口
public class classname implements interface1 , inter2 , inter3 { }
classname类同时实现这三个接口
- 接口和接口的关系:继承关系;可以单继承也可以多继承
接口之间不可以实现(implements)
public interface inter1 extend inter2,inter3{}
inter1 这个接口同时继承inter2,inter3这两个接口,java中多继承的体现
12. 抽象类和接口的区别:
设计层面上,抽象类是对类抽象,包括属性、行为
接口是对行为抽象
例如想要实现门的开关行为和部分门独有的报警行为
就需要设计一个抽象类,抽象所有门都有的开关行为,在设计一个接口,部分门需要报警功能时再实现报警接口