java基础之接口与抽象
接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全部是全局常量和公共的抽象方法所组成
格式
interface A{ // 定义接口A public static final String AUTHOR = "李兴华" ; // 全局常量 public abstract void print() ; // 抽象方法 public abstract String getInfo() ; // 抽象方法 }
interface A{ String AUTHOR="JDK"; void print(); String getinfo(); }
这两者是一样的
因为JAVA里面默认接口里是全局变量和抽象方法 所以其他的省略
实现接口
(1) 与抽象类一样,接口要使用也必须通过子类,子类必须同implement关键字实现接口
(2)实现格式
class 子类 implement 接口A,接口b{ }接口中使用中 必须要有子类,子类必须复写全部方法,一个子类能同时实现多个接口
讲了这么多了 用一段代码来演示一下
interface A{ // 定义接口A public String AUTHOR = "李兴华" ; // 全局常量 public void print() ; // 抽象方法 public String getInfo() ; // 抽象方法 } interface B{ // 定义接口B public void say() ; // 定义抽象方法 } class X implements A,B{ // X类同时实现A和B两个接口 public void say(){ System.out.println("Hello World!!!") ; } public String getInfo(){ return "HELLO" ; } public void print(){ System.out.println("作者:" + AUTHOR) ; } }; public class InterfaceDemo03{ public static void main(String args[]){ X x = new X() ; // 实例化子类对象 x.say() ; x.print() ; } };
同时也能继承抽象类实现接口
interface A{ // 定义接口A public String AUTHOR = "李兴华" ; // 全局常量 public void print() ; // 抽象方法 public String getInfo() ; // 抽象方法 } abstract class B{ // 定义抽象类B public abstract void say() ; // 定义抽象方法 } class X extends B implements A{ // X类线继承B类,再实现A接口 public void say(){ System.out.println("Hello World!!!") ; } public String getInfo(){ return "HELLO" ; } public void print(){ System.out.println("作者:" + AUTHOR) ; } }; public class InterfaceDemo04{ public static void main(String args[]){ X x = new X() ; // 实例化子类对象 x.say() ; x.print() ; } };
同时也要注意 接口不能继承抽象类 抽象类却能继承接口
interface A{ // 定义接口A public String AUTHOR = "李兴华" ; // 全局常量 public void print() ; // 抽象方法 public String getInfo() ; // 抽象方法 } abstract class B implements A{ // 定义抽象类B,实现接口A public abstract void say() ; // 定义抽象方法 } class X extends B{ // X类线继承B类 public void say(){ System.out.println("Hello World!!!") ; } public String getInfo(){ return "HELLO" ; } public void print(){ System.out.println("作者:" + AUTHOR) ; } }; public class InterfaceDemo05{ public static void main(String args[]){ X x = new X() ; // 实例化子类对象 x.say() ; x.print() ; } };