JAVA面对对象(五)——接口
接口由全局常量和公共的抽象方法组成,接口的定义格式:
1 interface 接口名称{ 2 全局常量; 3 抽象方法; 4 }
接口中的抽象方法必须定义为public访问权限,在接口中如果不写也默认是public访问权限
接口的定义:
1 interface A{ 2 public static final String AUTHOR = "张宇"; //定义全局常量 3 public abstract void print(); //定义抽象方法 4 public abstract String getInfo(); //定义抽象方法 5 }
但是在接口的定义中已经声明了接口是由全局常量和抽象方法组成的,所以可以简化为以下格式:
1 interface A{ 2 String AUTHOR = "张宇"; //等价于:public static final String AUTHOR = "张宇"; 3 void print(); //等价于:public abstract void print(); 4 String getInfo(); //等价于:public abstract String getInfo(); 5 }
与抽象类一样,接口若要使用也必须通过子类,子类通过implement关键字实现接口:
1 class 子类 implement 接口A,接口B,...{ 2 }
实现接口:
1 interface A { 2 public String AUTHOR = "张宇"; 3 public void print(); 4 public String getInfo(); 5 } 6 interface B { 7 public void say(); 8 } 9 class X implements A,B{ //子类同时实现两个接口 10 @Override 11 public void say() { //覆写接口B中的抽象方法 12 System.out.println("Hello World"); 13 } 14 @Override 15 public void print() { //覆写接口A中的抽象方法 16 System.out.println("姓名:"+AUTHOR); 17 } 18 @Override 19 public String getInfo() { //覆写接口A中的抽象方法 20 return "Hello"; 21 } 22 } 23 public class Demo { 24 public static void main(String[] args) { 25 X x = new X(); 26 x.say(); //调用被覆写过的方法 27 x.print(); 28 } 29 }
除此之外,接口也可以继承,且多继承
1 interface 子接口 extends 父接口A,父接口B,...{ 2 }
如果一个子类又要继承抽象类又要继承接口,可用以下格式:
1 class 子类 extends 抽象类 implement 接口A,接口B,...{ 2 }