1,类是具体的实现,但是接口是规范,接口不必关心类的实现细节,因此接口应该是public的。
2,在定义接口的时候,默认修饰符为default,而在接口内部 的成员都是默认为public的,接口继承接口,类实现接口
3,接口没有构造函数与初始化块,
接口的成员变量默认为public static final修饰的,即只有类变量;
接口里面有三种方法,抽象方法默认为public abstract,默认方法与静态方法均有方法体
默认方法用default修饰,不可以用static,类方法用static修饰不可以用default。二者均默认为public。
接口的内部类,内部接口,内部枚举默认为public static。
4,一个Java源文件只可以最多只可以有一个public接口。源文件名与该接口同名。
5,使用接口:可以生成接口引用,但是对象是其子类对象,即向上转型。
6,接口是规范,抽象类是模板
7,工厂模式:
类组合接口(接受接口类型引用)———》该接口的工厂类(负责生成接口对象)——》实现接口类(在工厂中会生成该类的对象赋值给 接口引用)
因此当需要改变设备时,1,需要实现对应的接口子类,2,在工厂类中修改,生成对应对象。
8,命令模式具体行为要根据数据来定,即动作也是未知的。Lambda表达式
例:类A中一个方法要执行对传入的一组数据的操作,此时数据未知,操作未知。此时哟两个参数,一是数据,而是接口引用
————》在一个接口里面先定义一个方法,————》接口的的实现类实现该方法,不同实现类实现对该方法的实现不同,
————》调用的时候直接传入实现类的对象。