接口的基本介绍
- 接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。
- 语法:interface 接口名{
//属性
//方法} - 实现接口
class 类名 implements 接口{
必须实现的接口的抽象方法
自己属性
自己方法}
注意事项
- 接口不能被实例化
- 接口中所有的方法是 public方法,接口中抽象方法,可以不用abstract修饰
- 一个普通类实现接口,就必须将该接口的所有方法都实现
- 抽象类实现接口,可以不用实现接口的方法
- 一个类可以同时实现多个接口
- 接口中的属性,只能是final的,而且是 public static final 修饰符。
如:int a = 1;实际上是 public static final int a = 1;(必须初始化) - 接口中属性的访问形式:接口名.属性名
- 一个接口不能继承其他的类,但是可以继承多个别的接口
如:interface A extends B,C{} - 接口的修饰符,只能是public和默认,和类的修饰符是一样的
实现接口与继承的比较
- 接口和继承解决的问题不一样
1.继承的价值主要在于:解决代码的复用性和可维护性
2.接口的价值主要在于:设计,设计好各种规范(方法),让其他类去实现这些方法,即更加灵活 - 接口比继承更加灵活
继承是满足is-a的关系,而接口只需满足like - a 的关系 - 接口在一定程度上实现代码的解耦
接口的多态特性
-
多态参数(继承的向上转型)
接口引用可以指向 实现了接口的类的对象实例
-
多态数组
-
接口存在多态传递