java接口的理解、定义、使用

接口的理解

官方解释:Java接口是***一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现***,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)Balabalabala………

我的解释:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段。

无法多继承是什么意思呢?
举个例子java接口的理解、定义、使用
(这里应该是Bird)
现在我们需要一个类来完成飞行这个任务。此时有Airplane、Bird、Superman三个子类可以完成。如果我们考虑实际的继承关系,那么Airplane、Bird、Superman分属于不同的父类,不可以再继承Flyable。此时我们可以把Flyable接口当作Airplane、Bird、Superman共同的一个特殊父类(具有相同的行为)。

接口的作用就是告诉类,你要实现我这种接口代表的功能,你就必须实现某些方法,我才能承认你确实拥有该接口代表的某种能力。

多应用于我们只需要能实现某种功能的类,而不考虑他们的层次关系


接口的定义

接口定义的一般形式为:

[访问控制符]interface <接口名> {

类型标识符final 符号常量名n = 常数;

返回值类型 方法名1([参数列表]);
返回值类型 方法名2([参数列表]);

}

1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)

2、Java接口中的方法默认都是public,abstract类型的(都可省略),只有方法名,以分号结尾,不能被实例化

3.接口的方法都是public,abstract修饰(默认)(1.8以后方法可以加static关键字,但必须有方法体)

4、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口

5、Java接口必须通过类来实现它的抽象方法

6、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类

7、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例

8、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.


使用

使用上面Flyable的例子:
interface Flyable{
void takeoff();
void fly;
void land;
}
class Bird extends Animal implements Flyable {
public void fly(){
System.out.println(“I can fly”);
}

使用接口的注意点

1.接口不是真正的类

2.接口关键字:interface 类实现接口关键字:implements

3.接口没有构造方法

4.接口不能被实例化

5.接口的实现类必须实现接口所有的方法