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

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java接口是什么

Java接口是什么

更新時(shí)間:2022-10-18 11:49:35 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1572次

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

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

編寫接口類似于編寫類。但是一個(gè)類描述了一個(gè)對(duì)象的屬性和行為。接口包含類實(shí)現(xiàn)的行為。

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

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

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

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

接口的字節(jié)碼出現(xiàn)在.class文件中。

接口出現(xiàn)在包中,其對(duì)應(yīng)的字節(jié)碼文件必須在與包名匹配的目錄結(jié)構(gòu)中。

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

您不能實(shí)例化接口。

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

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

接口不能包含實(shí)例字段??梢猿霈F(xiàn)在接口中的唯一字段必須聲明為靜態(tài)和最終的。

接口不被類擴(kuò)展;它由一個(gè)類實(shí)現(xiàn)。

一個(gè)接口可以擴(kuò)展多個(gè)接口。

聲明接口

interface關(guān)鍵字用于聲明接口。這是一個(gè)聲明接口的簡(jiǎn)單示例 

例子

以下是一個(gè)界面示例

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

接口具有以下屬性 

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

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

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

例子

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

實(shí)現(xiàn)接口

當(dāng)一個(gè)類實(shí)現(xiàn)一個(gè)接口時(shí),你可以把這個(gè)類看作是簽訂了一份契約,同意執(zhí)行接口的具體行為。如果一個(gè)類不執(zhí)行接口的所有行為,則該類必須將自己聲明為抽象。

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

例子

/* 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();
   }
} 

這將產(chǎn)生以下結(jié)果 

輸出

Mammal eats
Mammal travels

當(dāng)覆蓋接口中定義的方法時(shí),需要遵循幾個(gè)規(guī)則 -

除了接口方法聲明的方法或接口方法聲明的子類之外,不應(yīng)在實(shí)現(xiàn)方法上聲明受檢異常。

重寫方法時(shí)應(yīng)保持接口方法的簽名和相同的返回類型或子類型。

實(shí)現(xiàn)類本身可以是抽象的,如果是,則不需要實(shí)現(xiàn)接口方法。

實(shí)現(xiàn)接口時(shí),有幾條規(guī)則 

一個(gè)類一次可以實(shí)現(xiàn)多個(gè)接口。

一個(gè)類只能擴(kuò)展一個(gè)類,但可以實(shí)現(xiàn)多個(gè)接口。

一個(gè)接口可以擴(kuò)展另一個(gè)接口,就像一個(gè)類可以擴(kuò)展另一個(gè)類一樣。

擴(kuò)展接口

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

以下 Sports 接口由 Hockey 和 Football 接口擴(kuò)展。

例子

// 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 接口有四個(gè)方法,但它從 Sports 繼承了兩個(gè);因此,實(shí)現(xiàn) Hockey 的類需要實(shí)現(xiàn)所有六個(gè)方法。同樣,實(shí)現(xiàn) Football 的類需要定義 Football 中的三個(gè)方法和 Sports 中的兩個(gè)方法。

擴(kuò)展多個(gè)接口

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

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

例如,如果 Hockey 接口同時(shí)擴(kuò)展了 Sports 和 Event,它將被聲明為 -

例子

public interface Hockey extends Sports, Event

標(biāo)記接口

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

例子

package java.util;
public interface EventListener
{}

沒有方法的接口稱為標(biāo)記接口。標(biāo)記接口有兩個(gè)基本的設(shè)計(jì)目的 -

Creates a common parent - 與由 Java API 中的許多其他接口擴(kuò)展的 EventListener 接口一樣,您可以使用標(biāo)記接口在一組接口中創(chuàng)建一個(gè)公共父級(jí)。例如,當(dāng)一個(gè)接口擴(kuò)展 EventListener 時(shí),JVM 知道該特定接口將用于事件委托場(chǎng)景。

將數(shù)據(jù)類型添加到類- 這種情況是術(shù)語標(biāo)簽的來源。實(shí)現(xiàn)標(biāo)記接口的類不需要定義任何方法(因?yàn)榻涌跊]有任何方法),但類通過多態(tài)成為Java接口類型

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 老司机午夜免费视频 | 亚洲天堂资源 | 欧做爰xxxⅹ性欧美大片孕妇 | 久久综合九色综合97婷婷女人 | 欧洲毛片真人 | 国产最新网站 | 精品乱人伦一区二区 | 高清视频 一区二区三区四区 | 99久久国内精品成人免费 | 亚洲国产成人精品激情 | 久久久久毛片免费观看 | 日本精品夜色视频一区二区 | 伊人久热这里只精品视频 | 久久婷婷激情综合中文字幕 | 裸身裸乳免费视频网站 | 国产午夜不卡 | 福利在线看片 | 日韩视频观看 | baoyu777永久免费视频 | 天天色网站 | 牛牛影视成人午夜影视 | 91成人爽a毛片一区二区 | 久久久精品日本一区二区三区 | 成人a视频片在线观看免费 成人a视频在线观看 | 亚洲欧美日韩国产精品影院 | 国产在线精品一区二区不卡 | 爱爱视频在线免费观看 | 青草草在线观看 | 日本不卡免费新一区二区三区 | 国产精品久久久久影院色老大 | 神马影院午夜我不卡 | 亚洲乱码视频在线观看 | 天天摸夜夜摸夜夜狠狠摸 | 国产精品成人久久久 | 一区二区日本 | 97国产精品视频观看一 | 91精品国产亚一区二区三区 | 在线国产一区 | 日韩经典一区 | 伊人色综合网 | 国产在线观看一区精品 |