一、接口
接口可以看做是特殊的抽象類。但接口並不是類,編寫接口的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法,接口則包含類要實現的方法。
接口無法被實例化,但是可以被實現。一個實現接口的類,必須實現接口內所描述的所有方法,否則就必須聲明爲抽象類。
二、特點
1.接口不能用於實例化對象。
2.接口沒有構造方法。
3.接口中所有的方法必須是抽象方法。(jdk1.7版本及以前)
4.接口不能包含成員變量,除了 public static final修飾的變量。
5.接口不是被類繼承了,而是要被類實現。
6.接口支持多繼承。
7.接口中每一個方法也是隱式抽象的,接口中的方法會被隱式的指定爲 public abstract(也只能是public abstract修飾)。
三、定義
使用interface關鍵字聲明(不能與abstract一起使用)。
例:
//定義接口
public interface MyInterface {
//定義抽象方法
public abstract void fun_1();
//定義抽象方法,默認被public abstract 修飾,可以省略不寫
void fun_2();
}
四、實現接口
要想使用接口,需要創建一個類,實現接口,實現接口中的所有抽象方法,創建實現類的對象來使用。實現接口使用implements關鍵字。
例:
//定義接口
public interface MyInterface {
//定義抽象方法
public abstract void fun_1();
//定義抽象方法,默認被public abstract 修飾,可以省略不寫
void fun_2();
}
//定義類,實現上述定義的接口
class Myclass implements MyInterface{
//實現接口中的所有抽象方法
@Override
public void fun_1() {
System.out.println("我是接口中的抽象方法1");
}
@Override
public void fun_2() {
System.out.println("我是接口中的抽象方法2");
}
}
//定義測試類
class Test{
public static void main(String[] args){
//創建實現類對象
Myclass mc = new Myclass();
//調用實現後的方法
mc.fun_1();
mc.fun_2();
}
}
一個類可以同時實現多個接口,接口名使用逗號分隔。
一個類也可以繼承一個類的同時,實現多個接口。
一個接口能繼承另一個接口。