Java之介面的使用
阿新 • • 發佈:2019-01-10
-
介面實現的基本語法
實現介面時,需要使用關鍵字implements,該關鍵字指定該類實現介面,基本語法如下。
class <類名> implements <介面名列表>
介面名列表中可以有多個介面,因為介面代表的角色,一個類可以扮演多個角色,下面給出了一個合法的介面實現的程式碼片段。
public interface Employee { } //Employee介面 public interface Manager { } //Manager介面 public class Person implements Employee,Manager { } //Person實現了Employee和Manager介面
Employee、Manger都是介面,分別代表普通員工和經理,Person是一個類,代表自然人,實現了Employee和Manage介面,表示人同時扮演經理和員工兩個角色。
-
介面中方法的實現與使用
類的繼承使得開發人員可以處理同類的事物,但不能處理不同類但具有相同功能的事物。介面能夠被很多不同的類實現,但介面中定義的方法僅僅是實現某一特定功能的規範,而並沒有真正實現這些功能。這些功能都需要在實現該介面的類中完成。
例如,直升飛機與民航客機夠可以充當飛行器的角色,但直升機與民航客機沒有任何繼承關係,但是直升機與民航客機通過實現Flyer介面,使得二者都能夠作為飛行器進行處理。因為類對介面的實現有上述含義,因為當一個類實現了某個介面,其應當為該介面中的所有方法提供具體實現,除非該類為抽象類。
package cahpter05; //飛行器介面 interface Aerocraft { public void fly(); } interface Airplan { //載客飛行 public void passenger(); } //直升機介面 interface Helicopter { //垂直飛行 public void verticaStart(); } class Apache implements Aerocraft,Helicopter { //實現方法 public void fly() { System.out.println("飛行器可飛行"); } public void verticaStart() { System.out.println("直升飛機可以垂直起飛"); } } //A380客機類,同時實現Aerocraft Airplane介面 class A380 implements Aerocraft,Airplan { public void fly() { System.out.println("飛行器可以飛行"); } public void passenger() { System.out.println("A380可以載客625人飛行"); } } public class Sample5_1 { public static void main(String[] args) { // TODO Auto-generated method stub Apache a= new Apache(); a.fly(); a.verticaStart(); A380 a1 =new A380(); a1.fly(); a1.passenger(); } }
上面的例子中,阿帕奇直升機實現了飛行器和直升飛機的介面,空客A380實現了飛行器和明航飛機的介面。無論在阿帕奇直升機還是A80類中都必須實現介面中定義的方法,否則編譯會報錯。