接口
- 接口是Java中最重要的概念,接口可以理解为一种特殊的类,里面全部用都是有全局常量和公共的抽象方法所组成。
- 如果一个类中完全是由全局常量(static final声明)和抽象方法组成,就可以将其定义成一个接口。
接口的定义格式
interface 接口名称{
全局常量;
抽象方法;
}
interface A{ // 定义接口A
public static final String AUTHOR = "高琦淞" ; // 全局常量
public abstract void print() ; // 抽象方法
public abstract String getInfo() ; // 抽象方法
}
对于接口来讲,因为其在定义的时候已经定义了其组成就是全局常量和抽像方法,所以在开发中往往可以简化定义
interface A{ // 定义接口A
String AUTHOR = "高琦淞" ; // 全局常量
void print() ; // 抽象方法
String getInfo() ; // 抽象方法
}
以上的两种定义方法是完全一样的,没有任何区别的。
实现接口
- 与抽象类一样,接口要使用也必须通过子类,子类通过implement关键字实现接口。
实现格式:
class 子类 implement 接口A,接口B,…{
}
接口的使用中也必须有子类,子类必须覆写全部抽方法,implement关键字实现。一个子类可以同时实现多个接囗,子类如果不是抽像类的话,必须要覆写接囗中的全部抽像方法.·
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() ;
}
};
接口的继承
一个接口虽然不能继承抽象类,但是在Java中一个接口可以同时继承多个多个接口,实现接口的多继承。
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() ;
}
};
总结
接口是一个恃殊的类,只包含全局常量和抽像方法
- 接口中的抽像方法可以不加入abstract而抽像类中的抽像方法必须有abstract关键字声明
- 一个类只能继承一个父类,但是可以同时实现多个接囗·
- 一个接口可以同时继承多个接口,以实现接口的继承
- 接囗和抽像类一样,都必须依靠子类·
- 一个抽象类可以实现多个接口,但是一个接口不能继一个抽象类