接口
仅仅是具有相同的行为特征,而没有继承的关系
![image-20211227230431935](https://i-blog.csdnimg.cn/blog_migrate/aa2786de17fc84ac63f165bca7a527c1.png)
![image-20211227230457117](https://i-blog.csdnimg.cn/blog_migrate/0edf3ddc28d41c2d0d942ecead7b7b2e.png)
接口的使用:
-
接口使用interface来定义
-
Java中,接口和类似并列的两个结构
-
如何定义接口:定义接口的成员
- JDK7及之前:只能定义全局常量和抽象方法
- 全局常量:public static final的
- 抽象方法:public abstract的
- JDK8: 除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(略)
- JDK7及之前:只能定义全局常量和抽象方法
interface Flyable{
//全局常量
public static final int MAX_SPEED = 7900;
int MIN_SPEED = 1; // 省略了 public static final 接口中只要是常量都得这样定义 只不过省略
//抽象方法
public abstract void fly();
void stop(); //省略了public abstract
}
4.接口不能定义构造器 !!意味着接口不可以实例化!
5.Java开发中,接口通过让类去实现(implements)的方式来使用
-
如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化
-
如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类,需在前面加abstract
-
class Plane implements Flyable{ @Override public void fly() { System.out.println("通过引擎飞"); } @Override public void stop() { System.out.println("减速"); } } abstract class Kite implements Flyable{ @Override public void fly() { System.out.println("fly"); } }