Java笔记--接口
体现的思想是对规则的声明,Java中的接口更多体现的是对行为的抽象。
如果一个类中 ,所有的组成都是抽象方法,没有成员变量,没有普通方法。这种类,我们通常会设计成为Java中的接口,因为这个类存在的唯一价值就是声明规则。
1、如何定义接口
通过interface来定义。定义类是class 定义接口只需要将定义类的格式中的class换成interface。
public interface 接口名 {
}

2、接口不能实例化
因为接口中的方法都是抽象方法。如果创建了接口对象,就可以用对象调用到接口里的抽象方法,抽象方法没有什么意义。
3、接口和类之间是实现关系,通过implements关键字表示
public class 类名 implements 接口名{
}
4、实现类(接口的子类)(干爹)

上面的类就是实现类。
要么重写接口中的所有方法,要么这个类也是抽象类,但是在实际开发中都是第一种。
创建实现类对象,然后通过实现类对象调用接口的重写方法。

5、接口的成员特点:
<1>构造方法:没有
这里我们可能会有疑问,因为我们知道所有子类的构造方法中默认存在一个super( );来调用父类中的构造方法,而实现类也是接口的子类,实现类中的super( );怎么办呢?其实接口算是实现类的“干爹”,因为实现类真正的父类是Object类。他的super( );调用的是Object类中的构造方法。
<2>成员变量:只能定义常量
例如我们在接口中定义 int num = 10;
系统会在int num = 10;前面默认加上 public static final关键字。
既然它是被final修饰的,所以按照江湖规矩,我们应该将它改写为int NUM = 10;
<3>成员方法:只能是抽象方法
因为系统会默认加上两个关键字public abstract。
6、接口和类之间的各种关系
<1>类和类之间:继承关系,只支持单继承,不支持多继承,但是可以多层继承。
<2>类和接口之间:实现关系,可以单实现,也可以多实现,甚至可以在继承一个类的同时,实现多个接口。
<3>接口和接口之间:继承关系,可以单继承,也可以多继承。
7、抽象类和接口的对比
