黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java接口是什么

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

接口是 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接口類型

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩欧美理论 | 亚洲区色 | 国产精品视频一 | 日本三级2021| 人人射人人舔 | 亚洲国产成人精品一区二区三区 | 18pao国产成视频永久免费 | 欧美一a一片一级一片 | 国产视频欧美 | 欧美日韩视频在线第一区二区三区 | 又黄又爽又成人免费视频 | 黄网页在线观看 | 天堂资源网 | 久久国产午夜精品理论片34页 | 北条麻妃中文字幕在线观看 | 一本大道香蕉久97在线视频 | 一级片免费播放 | 欧美四区 | 曰批免费视频播放免费完整 | 国产一区二区三区视频 | 免费一级黄色毛片 | 日韩欧美亚洲中字幕在线播放 | h视频网站在线 | 狠狠久久综合伊人不卡 | 久久精品国产亚洲精品2020 | 热99re久久精品精品免费 | 日本sm极度另类视频 | 成人黄色在线播放 | 日本爽爽爽爽爽爽在线观看免 | 欧美一区二区三区激情视频 | 18男女很黄的视频 | 日日操日日| 未满十八18勿进黄网站免费看 | 国内一级片 | 欧美视频你懂的 | 国产欧美日韩第一页 | 日日摸夜夜添夜夜爽免费视频 | 黄色欧美在线观看 | 国产一区精品视频 | 高清中国一级毛片免费 | 香蕉视频最新版 |