大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java接口是什么

Java接口是什么

更新時間:2022-10-18 11:49:35 來源:動力節點 瀏覽1742次

接口是 Java 中的引用類型。它類似于類。它是抽象方法的集合。一個類實現了一個接口,從而繼承了接口的抽象方法。

除了抽象方法,接口還可以包含常量、默認方法、靜態方法和嵌套類型。方法體僅存在于默認方法和靜態方法。

編寫接口類似于編寫類。但是一個類描述了一個對象的屬性和行為。接口包含類實現的行為。

除非實現接口的類是抽象類,否則接口的所有方法都需要在類中定義。

接口在以下方面類似于類 -

一個接口可以包含任意數量的方法。

接口寫在擴展名為.java的文件中,接口的名稱與文件的名稱匹配。

接口的字節碼出現在.class文件中。

接口出現在包中,其對應的字節碼文件必須在與包名匹配的目錄結構中。

但是,接口在幾個方面與類不同,包括 

您不能實例化接口。

接口不包含任何構造函數。

接口中的所有方法都是抽象的。

接口不能包含實例字段。可以出現在接口中的唯一字段必須聲明為靜態和最終的。

接口不被類擴展;它由一個類實現。

一個接口可以擴展多個接口。

聲明接口

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\
}

接口具有以下屬性 

接口是隱式抽象的。聲明接口時不需要使用abstract關鍵字。

接口中的每個方法也是隱式抽象的,因此不需要 abstract 關鍵字。

接口中的方法是隱式公開的。

例子

/* File name : Animal.java */
interface Animal {
   public void eat();
   public void travel();
}

實現接口

當一個類實現一個接口時,你可以把這個類看作是簽訂了一份契約,同意執行接口的具體行為。如果一個類不執行接口的所有行為,則該類必須將自己聲明為抽象。

類使用implements關鍵字來實現接口。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

當覆蓋接口中定義的方法時,需要遵循幾個規則 -

除了接口方法聲明的方法或接口方法聲明的子類之外,不應在實現方法上聲明受檢異常。

重寫方法時應保持接口方法的簽名和相同的返回類型或子類型。

實現類本身可以是抽象的,如果是,則不需要實現接口方法。

實現接口時,有幾條規則 

一個類一次可以實現多個接口。

一個類只能擴展一個類,但可以實現多個接口。

一個接口可以擴展另一個接口,就像一個類可以擴展另一個類一樣。

擴展接口

一個接口可以擴展另一個接口,就像一個類可以擴展另一個類一樣。extends關鍵字用于擴展接口,子接口繼承父接口的方法。

以下 Sports 接口由 Hockey 和 Football 接口擴展。

例子

// Filename: Sports.java
public interface Sports {
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}
// Filename: Football.java
public interface Football extends Sports {
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}
// Filename: Hockey.java
public interface Hockey extends Sports {
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

Hockey 接口有四個方法,但它從 Sports 繼承了兩個;因此,實現 Hockey 的類需要實現所有六個方法。同樣,實現 Football 的類需要定義 Football 中的三個方法和 Sports 中的兩個方法。

擴展多個接口

Java 類只能擴展一個父類。不允許多重繼承。然而,接口不是類,一個接口可以擴展多個父接口。

extends 關鍵字只使用一次,父接口在逗號分隔的列表中聲明。

例如,如果 Hockey 接口同時擴展了 Sports 和 Event,它將被聲明為 -

例子

public interface Hockey extends Sports, Event

標記接口

當父接口不包含任何方法時,最常使用擴展接口。例如,java.awt.event 包中的 MouseListener 接口擴展了 java.util.EventListener,其定義為 -

例子

package java.util;
public interface EventListener
{}

沒有方法的接口稱為標記接口。標記接口有兩個基本的設計目的 -

Creates a common parent - 與由 Java API 中的許多其他接口擴展的 EventListener 接口一樣,您可以使用標記接口在一組接口中創建一個公共父級。例如,當一個接口擴展 EventListener 時,JVM 知道該特定接口將用于事件委托場景。

將數據類型添加到類- 這種情況是術語標簽的來源。實現標記接口的類不需要定義任何方法(因為接口沒有任何方法),但類通過多態成為Java接口類型

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 五月婷婷在线观看 | 97精品一区二区三区在线不卡 | 九九99久久精品影视 | 成人欧美一区二区三区黑人妖 | 日本特级爽毛片叫声 | 久草视频播放器 | aⅴ免费在线观看 | 亚洲精品老司机综合影院 | 99久热成人精品视频 | 啪啪网站免费 | 九九视频免费在线 | 久久久久亚洲精品一区二区三区 | 色屁屁影视大全 | 国产不卡在线观看 | 亚洲激情在线 | 手机看片久久高清国产日韩 | 精品久久影院 | 亚洲十欧美十日韩十国产 | 国产精品福利视频一区二区三区 | 2021国产精品系列一区二区 | 日韩天堂在线观看 | 日本美女视频韩国视频网站免费 | 久久婷婷婷| 中文亚洲字幕 | 国产一区二区在线观看视频 | 久久影| 中文字幕福利视频 | 欧美天天爽 | 成人欧美在线视频 | 奇米影视第四色首页 | 国产精品久久一区二区三区 | 国产高清久久99 | 亚洲高清资源 | 精品久久久久国产免费 | 四虎最新永久免费视频 | 久久国产欧美另类久久久 | 精品国产系列 | 国产精品一在线观看 | 普通话对白国产情侣自啪 | 日韩在线一区二区 | 99久久亚洲|