Java千百問_05面向對象(004)_java接口到底是什么


點擊進入_更多_Java千百問

1、什么是接口

接口(interface)不是一個類,它是抽象方法的集合。一個類實現一個接口,從而繼承和實現接口的抽象方法。
抽象方法看這里:java中抽象概念如何體現的

接口的特點如下,先看與類類似的特點:

  1. 接口的寫法和寫一個類類似,但它們是兩個不同的概念。類描述對象的屬性和行為。接口僅僅定義了事物的行為,且不會具體化這個行為。
  2. 除非實現接口的是抽象類,不然接口中的所有方法必須在類(實現這個接口的類)中定義且實現
  3. 接口同類一樣,可以包含任何數量的方法。
  4. 接口同類一樣,被寫在同一個.java擴展名的源文件中,文件名與接口名稱一致。
  5. 接口同類一樣,會被編譯為一個.class文件。
  6. 同類一樣,需要指定包(package),來表明接口所在的目錄結構。了解更多package看這里:package和import作用是什么

與類不同的幾個方面:

  1. 接口不能被實例化
  2. 接口不包含任何構造函數。
  3. 接口中的所有方法都是抽象的。
  4. 接口不包含實例字段。但可以定義常量,使用static和final關鍵字。
    了解常量看這里:局部變量、類變量、實例變量有什么區別
  5. 類通過實現接口重寫接口的方法,而不是繼承。
  6. 接口可以繼承另一個接口。

2、如何編寫一個接口

使用interface關鍵字聲明一個接口。
例子:

/* File name : NameOfInterface.java */
import java.lang.*;
//Any number of import statements

public interface NameOfInterface
{
//Any number of final, static fields
//Any number of abstract method declarations
}

編寫接口需要注意:

  1. 接口是隱式抽象的。聲明一個接口,不需要使用abstract關鍵字
  2. 接口中的每個方法也隱式抽象的。方法也不需要abstract關鍵字
  3. 接口中的方法是隱式公開的,即public

例子:

/* File name : Animal.java */
interface Animal {

public void eat();
public void travel();
}

3、如何實現一個接口

當一個類實現一個接口,可以認為該類同意接受接口定義的行為。如果一個類不實現該接口的所有行為,該類必須自己聲明為abstract。
類使用implements關鍵字來實現一個接口。如下:

/* File name : MammalInt.java */
public class MammalInt implements Animal{

public void eat(){
System.out.println("Mammal eats");
}

public void travel(){
System.out.println("Mammal travels");
}

public int noOfLegs(){
return 0;
}

public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}

這將產生以下結果:
Mammal eats
Mammal travels

重寫接口中的方法有幾個規則:

  1. 接口方法拋出的異常在被實現時也需要拋出。
  2. 重寫方法時,應保持接口方法的參數和返回類型一致
  3. 一個實現類本身可以是抽象的,如果抽象類,接口方法可以不實現。
  4. 一個類只能擴展一個類,但能實現多個接口
  5. 一個接口可以擴展另一個接口,類似於一個類可以擴展另一個類。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com