接口
宏观:
就是一种规则
微观:
实现一种功能
语法:
权限修饰符 interface class 接口名{
属性
方法(没有构造方法)
}
接口中可以定义那些东西
- 公共的静态常量
语法:
public static final 名字(大写) = 具体的值; - 接口中可以拥有公共的静态方法
- 接口中可以拥有公共的抽象方法
接口中的抽象方法默认使用public abstract修饰 - 接口中可以使用default 修饰普通方法(了解即可)
- 接口中没有构造方法
- 接口中没有代码块
接口的实现与继承
接口与接口的多继承:
关键字:
extends
语法:
权限修饰符 interface 接口名 extends 接口1, 接口2 …{}
注意:
1. 接口与接口之间继承子类不能继承静态方法
2. 可以继承公共的 静态的 常量
3. 可以继承父类的所有抽象方法
接口与类之间的实现:
关键字:
implement
语法:
权限修饰符 修饰符 class 类名 extends 父接口 implement 接口1 , 父接口2 ,…{}
注意:
1.一个类可以实现多个接口
2.这个类要么实现接口中的所有抽象方法 要么自己也是抽象类
接口 与 抽象类的区别:
接口:
概念:规则 公共
不能写普通方法
只能写公共的静态长常量,方法也是公共的
不能有构造方法
静态属性不可以被继承
不能有代码块
可以被类多实现
可以继承多个接口
抽象类:
概念;
可以有普通方法
可以有构造方法
方法和属性可以私有
静态属性可以被继承
可以有代码块
只能被单继承\
不能继承于接口
相同点:
都不能直接创建对象
都可以生成字节码 class文件
特殊接口
常量接口:
常量接口就是记录表一些固定值,几乎保持不变
空接口:
此类接口中啥也没有,就是代表一种规则,可以让多种子类转换为父类
实现了子类向上转型为父类,从而实现