接口interface在抽象上比抽象类更进了一步。抽象类还允许存在一般方法,接口里面只允许存在抽象方法。
除了抽象方法之外,抽象类中还有常量。接口的定义方法是:
interface 接口名{
(final) 数据类型 成员名称 = 常量;
abstract 返回值的数据类型 方法名称(参数);
}
其中,不论数据类型前面是否加final关键字,系统都会默认给加上 public static final (注意接口的成员字段是静态的且不可改变)
不论方法的前面是否加上abstract 关键字,系统都会默认给加上 public abstract
所以,如果类在实现接口的时候,方法前面没有加public关键字,就会报错,这里需要注意。写一个程序说明:
interface A{ //接口A
int i = 1;
void sayA();
}
interface B{ //接口B
int j = 2;
void sayB();
}
interface C extends A,B{ //接口C扩展自A和B,称为派生接口,或者子接口
int k = 3;
void sayC();
}
public class testInterface implements C{ //类testInterface实现了接口C
public void sayA(){ //这里必须加上访问关键字public,因为接口的方法都是public的
System.out.println("A");
}
public void sayB(){
System.out.println("B");
}
public void sayC(){
System.out.println("C");
}
public static void main(String[] args){
testInterface ti = new testInterface(); //创建对象
ti.sayA(); //访问已实现了的接口的方法
ti.sayB();
ti.sayC();
System.out.println(ti.i+ti.j+ti.k); //通过对象访问接口中常量
}
}