接口实际上也可以简单理解为一种父类,但是接口有不同于类的特性,声明接口的方式
访问权限 interface 接口名称{
//方法;
static或者final变量;
}
接口的特性如下
1.接口内的方法默认为抽象方法,可以写abstract修饰,也可以不用,隐式抽象
2.接口的成员变量必须是常量,需要final static修饰
3.类在实现接口时必须要将接口内全部的方法都实现(重写),抽象类除外,抽象类在实现接口时可以只重写接口的部分方法,但实现了接口的抽象类的普通子类必须重写接口的所有方法
4.接口内的所有成员访问权限默认都是public,否则被继承后就无法访问了,毕竟接口只能被实现。
5.接口内的成员变量是常量,所以引用时直接使用接口名称.变量名,即可访问,当然也可以使用继承接口类的对象访问。
6.接口无法直接实例化,但是可以通过引用指向子类对象
下面定义一个Car的接口
public interface Car{
public void run();
final static String color="black";
final static String brand="carora";
}
使用Carora类去实现Car接口
public class Carora implements Car {
public static void main(String args[]) {
Car c1 = new Carora();//使用接口的引用指向子类对象
c1.run();调用
System.out.print(c1.brand);//可以直接Car.brand访问变量
}
//重写run方法
public void run() {
System.out.print("HAHAHAHAHAHAHAH");
}
}