接口主要是一些方法的集合,只有方法的特征没有去实现这个方法,因为这些方法可以在不同的地方被不同的实现。
接口的细节使用:
一、从定义上来看
(1)定义接口的方式:修饰符(public / 默认) interface 接口名。 public 接口只能有一个.
接口能继承多个接口(记得是extends),而类只能继承一个,可以实现多个接口。
(public) interface 接口名{
属性;
方法(三种);
};(这里需不需要;呢?忘记了。)
(2)定义接口的属性: (修饰符) 数据类型 变量名;修饰符默认是public static final可以省略。
(3)定义接口的方法:有三个定义方法。
1、抽象方法: (public) (abstract)数据类型 方法名(参数列表); ;这里public abstract可写可不写,这两个都是默认的。注意是抽象方法没有方法体。
2、默认实现方法:(public) default 数据类型 方法名(参数列表){方法体} public 可省略,到那是default是一定不能省略的,而且有方法体。
3、静态方法:(public) static 数据类型 方法名(参数列表){方法体} public也可省略。注意这里不要跟 static方法块不一样,不是说类加载时就默认就能调用。
二、interface能否创建对象来看
1、接口是没有办法实例化对像的。跟抽象类有相同的特性也是没办法创建对象的。
三、实现interface的类--->主要看的是抽象类和普通类
(1)普通类实现interface的时候,要注意interface是否有抽象方法,如果有就必须重写。
可以重写 interface的默认实现方法
所有类都没办法重写static方法。
(2)抽象类,可以不实现inferface的抽象方法
(3)类可以实现多个接口但没办法继承多个类。
三、从调用成员来看
1、调用属性有三种方式:
(1)接口名.属性名。(这个属性是final、static、public可以直接接口名.属性名调用)
(2) 类名.属性名
(3)对象名.属性名
2、调用三种不同的方法
(1)、调用抽象方法:没办法调用,实现的类必须重写对象。
(2)、调用默认实现方法。调用方式:接口名.this.方法名
(3)、调用静态方法。调用方式:接口名.方法。(因为是静态方法)