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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java接口詳解

Java接口詳解

更新時間:2021-04-22 13:13:17 來源:動力節(jié)點 瀏覽1527次

接口是Java中的引用類型,它類似于類。它是抽象方法的集合。類實現(xiàn)接口,從而繼承接口的抽象方法。

除抽象方法外,接口還可以包含常量,默認方法,靜態(tài)方法和嵌套類型。方法體僅適用于默認方法和靜態(tài)方法。

編寫接口類似于編寫類。 但是一個類通常描述了對象的屬性和行為,而接口包含類實現(xiàn)的行為。

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

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

接口可以包含任意數(shù)量的方法。

接口編寫在擴展名為.java的文件中,接口名稱與文件名相同。

接口的字節(jié)代碼保存在.class文件中。

如果接口在包中,對應的字節(jié)碼文件必須位于與包名匹配的目錄結(jié)構(gòu)中。

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

無法實例化接口。

接口不包含任何構(gòu)造函數(shù)。

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

接口不能包含實例字段,字段必須聲明為static和final。

接口不是由類擴展的,它是由一個類實現(xiàn)的。

接口可以擴展多個接口。

1.聲明接口

interface關(guān)鍵字用于聲明接口,它是一個聲明接口的簡單示例 -

示例

以下是接口的示例 -

/* 文件名稱 : NameOfInterface.java */
import java.lang.*;
// 其它 import 語句

public interface NameOfInterface {
   // final, static 字段
   // 其它 abstract 方法聲明
}//

接口具有以下屬性 -

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

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

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

示例

/* 文件名稱 : Animal.java */
interface Animal {
   public void eat();
   public void travel();
}

2.實現(xiàn)接口

當類實現(xiàn)接口時,可以將類視為簽署合約,同意執(zhí)行接口的特定行為。 如果類不執(zhí)行接口的所有行為,則類必須將聲明為抽象。

類使用implements關(guān)鍵字來實現(xiàn)接口。 implements關(guān)鍵字出現(xiàn)在聲明的extends部分之后的類聲明中。

示例

/* 文件名稱 : MammalInt.java */
public class MammalInt implements Animal {
   // 實例接口中的 eat() 方法
   public void eat() {
      System.out.println("Mammal eats");
   }
   // 實例接口中的 travel() 方法
   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();
   }
}

執(zhí)行上面示例代碼,得到以下結(jié)果 -

Mammal eats
Mammal travels

3.擴展接口

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

以下兩個接口Hockey和Football分別擴展了Sports接口。

示例

// 接口Sports,文件: Sports.java
public interface Sports {
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

// 接口Football,擴展了 `Sports`接口,文件: Football.java
public interface Football extends Sports {
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

// 接口Hockey,擴展了 `Sports`接口,文件: Hockey.java
public interface Hockey extends Sports {
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

Hockey接口中共有四個方法,還有兩個方法是繼承過來的; 因此,實現(xiàn)Hockey接口的類需要實現(xiàn)所有六個方法。 同樣,實現(xiàn)Football接口的類需要定義來自Football接口中的三個方法和來自Sports接口中的兩個方法。

4.擴展多個接口

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

extends關(guān)鍵字使用一次,父接口在逗號分隔列表中聲明。

例如,如果Hockey接口擴展了Sports和Event接口,那么它的聲明是 -

public interface Hockey extends Sports, Event{

}

5.標記接口

擴展接口的最常見用法:當父接口不包含任何方法時,這種用法也稱為標記接口, 例如,java.awt.event包中的MouseListener接口擴展了java.util.EventListener,它的定義為 -

package java.util;
public interface EventListener
{}

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

創(chuàng)建公共父級 - 與EventListener接口(由Java API中的許多其他接口擴展)一樣,可以使用標記接口在一組接口中創(chuàng)建公共父級。 例如,當接口擴展EventListener時,JVM知道將在事件委托方案中使用此特定接口。

向類添加數(shù)據(jù)類型 - 這種情況是術(shù)語標記的來源。 實現(xiàn)標記接口的類不需要定義任何方法(因為接口沒有任何方法),但是類通過多態(tài)變成了接口類型。

以上就是動力節(jié)點小編介紹的“Java接口詳解”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務。

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

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久久久国产午夜 | 国产综合久久久久久 | 国产精品亚洲一区二区在线观看 | 男人的天堂一区二区视频在线观看 | 久久a视频| 亚洲精品久久久久久久无 | 亚洲码和乱人伦中文一区 | 99久久综合久中文字幕 | 欧美成人精品第一区二区三区 | 精品国产乱码一区二区三区 | 999国产精品999久久久久久 | 色天使色婷婷丁香久久综合 | 欧美亚洲网站 | 99热久久免费精品首页 | 久热中文字幕在线 | 欧美视频二区 | 国产美女流白浆的免费视 | 精品哟啊呦v视频在线观看 精品哟哟国产在线观看 | 欧美金八天国 | 视频大全在线观看免费 | 国产精品99r8在线观看 | 久久99热精品这里久久精品 | 四虎在线观看免费永久 | 天天操天天射天天色 | 九九九网站 | 欧美一区二区三区香蕉视 | 国产精品久久久久久久午夜片 | 深夜免费| 高清中文字幕视频在线播 | 伊人色院成人蜜桃视频 | 操操操网站 | 欧美日本在线一区二区三区 | 视色视频 | 精品亚洲成a人在线观看 | 91久久精品国产免费一区 | 深夜网站在线 | 特黄女一级毛片 | 大香线一本 | 欧美日韩一区二区视频免费看 | 欧美一级性视频 | 亚洲一区二区三区四区 |