接口:是一个特殊的类,在java中,接口是由抽象方法和全局常量组成。
在java中使用interface定义一个接口。
interface A{
public static final String INFO = "CHINA" ; //全局常量
public abstract void print() ;//抽象方法
public abstract void funt() ;//抽象方法
}
在此接口中定义了一个全局常量,两个抽象方法。
那么接口与抽象类一样,需要有子类。那么子类此时不在成为继承类,而是实现接口,通过implements关键字来完成。
interface A{
public static final String INFO = "CHINA" ; //全局常量
public abstract void print() ;//抽象方法
public abstract void fun() ;//抽象方法
} ;
class B implements A{//子类B实现了接口A
public void print(){//实现抽象方法
System.out.println("Hello World!!");
}
public void fun(){//实现抽象方法
System.out.println("=======================");
}
} ;
public class InterfaceDemo01{
public static void main(String args[]){
B b = new B() ;
b.print() ;
b.fun() ;
}
} ;
进一步研究以上的程序
既然接口从定义上已经明确要求是由抽象方法和全局常量组成,那么在接口定义的时候,就可以简化操作
interface A{
//public static final String INFO = "CHINA" ; //全局常量
String INFO = "CHINA" ;
public void print() ;//抽象方法
public void fun() ;//抽象方法
} ;
一个类只能继承几个类,但是一个类可以实现多个接口。
interface A{
//public static final String INFO = "CHINA" ; //全局常量
String INFO = "CHINA" ;
public void print() ;//抽象方法
public void fun() ;//抽象方法
} ;
interface C{
public void funA(){
}
} ;
class B implements A,C{//子类B实现了接口A
public void print(){//实现抽象方法
System.out.println("Hello World!!");
}
public void fun(){//实现抽象方法
System.out.println("=======================");
}
public void funA(){
System.out.println("----------------------------------------");
}
} ;
public class InterfaceDemo01{
public static void main(String args[]){
B b = new B() ;
b.print() ;
b.fun() ;
}
} ;
如果一个类既要实现接口又要继承抽象类的话,必须按照以下的方式完成:
class 子类 extends 父类 implements 接口A,接口B{}
一个接口虽然不可以继承一个抽象类,但是一个接口可以实现多个接口。