java中什么是接口


一、什么是接口

接口就是一個規范,類似於硬件上面的接口,在電腦主板上的PCI插槽的規范就類似於Java接口,只要是遵循PCI接口的卡,不過是什么牌子的都可以插入到PCI插槽中。所以接口就是一個規范。接口就是某個事物對外提供的一些功能的說明。我們還可以利用接口實現多態功能,同時接口也彌補了Java單一繼承的弱點,也就是類可以實現多個接口。

我們使用interface關鍵字定義接口,一般使用接口聲明方法或常量,接口中的方法只能是聲明,不能是具體的實現,這一點和抽象類是不一樣的。接口是更高級別的抽象。接口的定義格式是

public interface 接口名稱{

//可以定義常量

//方法只有方法聲明,而且是公共的。

public void 方法名稱();

...

}

類要實現接口,只需要使用implements關鍵字,實現類必須要實現接口中的所有的方法

public class 實現類名 implements 接口{

//實現接口的方法

}

二、接口的應用

定義一個接口非常簡單,當然其實要設計一個好的接口並不是很簡單,你必須要想好這個接口有什么常量和方法。但是技術卻非常簡單,示例代碼如下:

// 定義方法的接口
public interface Myinterface {
  // 定義程序使用的常量的接口,接口中只能有常量。
  public static final double price = 1450.00;
  public static final int counter = 5;
  //接口中所有的方法都沒有方法體。
  public void add(int x, int y);
  public void volume(int x,int y, int z);
}

 

實現接口也沒有什么難度,代碼如下:

                           //實現     接口
public class MyImple implements Myinterface {
    @Override
        public void add(int x, int y) {
    }
    @Override
        public void volume(int x, int y, int z) {
    }
}

 

一個類是可以實現多個接口,因為java是單繼承的,這點接口可以彌補。我們可以再定義一個接口

public interface MyInterface2 {
     public void countpp();
}

 

修改上面的實現類,要實現多個接口,可以使用逗號隔開,當然所有的接口的方法都要實現。

                           //實現       接口1,接口2
public class MyImple implements Myinterface ,MyInterface2{
    @Override
    public void add(int x, int y) {
    }
    @Override
    public void volume(int x, int y, int z) {
    }
    @Override
    public void countpp() {
    }
}

 

三、接口和抽象類有什么區別

abstract class和interface是Java語言中對於抽象類定義進行支持的兩種機制,abstract class和interface之間在對於抽象類定義的支持方面具有很大的相似性,甚至可以相互替換,因此很多開發者在進行抽象類定義時對於abstract class和interface的選擇顯得比較隨意。其實,兩者之間還是有很大的區別的

1、抽象類里面可以有非抽象方法。但接口里只能有抽象方法,接口體現的是一種規范,抽象類體現的是模板式設計。

2、接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽像的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對像上調用接口的方法。由於有抽像類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口

3、接口里不可以定義靜態方法,抽象類里可以。接口里的變量全部為靜態常量,抽象類里可以有普通變量。

4.接口里不可以有構造函數和初始化塊,抽象類里可以有。

5.一個類可以實現多個接口,但只能繼承一個抽象類。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM