接口的基本概念
- 接口是一种特殊的类,接口的数据成员必须初始化,且数据成员均为常量,常见的是全局变量。
- 接口里的方法为abstract,也就是说,接口不可以像抽象类类一样定义一般的方法,它必须定义“抽象方法"。
- JVAV中使用interface关键字来定义一个接口
接口使用规则
- 接口必须有子类,子类依靠implement关键字可以同时实现多个接口
- 接口的子类(不是抽象类)必须覆写接口之中的全部抽象方法
- 接口可以利用对象多态性,利用子类实现对象的实例化
- 接口与一般的类一样,本身也具有数据成员变量与方法,但数据成员一定要赋初始值,且此值不能在更改,方法也必须是抽象方法或default方法
语法:
interface 接口名称 //定义抽象类
{
final 数据类型 成员名称 = 常量; //数据成员必须赋初始值
abstract 返回值的数据类型 方法名称(参数...) //抽象方法,注意在抽象方法里没有定义方法主体
default 返回值的数据类型 方法名称(参数...) //默认方法,包含方法体
{...方法体...}
}
interface InterfaceA{ //定义一个接口
public static String INFO = "static final."; //全局变量
public void print(); //定义抽象方法
default public void otherprint() { //带方法体的默认方法
System.out.println("print default1 method InterfaceA!");
}
}
class InterfaceAB implements InterfaceA //子类IterfaceAB实现接口InterfaceA
{
public void print() //覆写接口中的抽象方法
{
System.out.println("print abstract method InterfaceA!");
System.out.println(INFO);
}
}
public class Interfacedefault {
public static void main(String[] args){
InterfaceAB ab = new InterfaceAB(); //实例化子类对象
ab.print(); //调用覆写过抽象方法
ab.otherprint(); //调用接口中的默认方法
System.out.println(InterfaceA.INFO); //输出接口的常量
}
}