interface 關鍵字

閱讀時間約 3 分鐘

在Java中

所有被宣告在interface中的method都是public abstract

所以interface中的method才不需要特地標上修飾符abstract


interface只體現設計方向

而如何實現此設計

就由class去 implements 此interface以實際override(重寫)

在interface中宣告的variable,預設都是final且static的
所以必須要賦予初始值


class 可以 implements 多個 interface

如下程式部分,假如Animal 和 Human 兩個interface都有eat method

那麼class Japanese implements時重寫的eat method 會直接override兩者的eat 行為

所以不會有像extends 繼承時出現不知道該參照誰的method的狀況發生

interface Animal {

void canSpeak(boolean can);

void eat();
}

interface Human {

void speak();

void eat();
}

class Japanese implements Human, Animal {

@Override
public void canSpeak(boolean can) {
System.out.println(can ? "can speak" : "can not speak");
}

@Override
public void speak() {
System.out.println("speak in japanese");
}

@Override
public void eat() {
System.out.println("eat something");
}
}


public class Demo {
public static void main(String[] args) {

Japanese human = new Japanese();
human.canSpeak(true); // can speak
human.speak(); // speak in japanese
human.eat(); // eat something

Japanese human2 = new Japanese();
human.canSpeak(false); // can not speak
human.speak(); // speak in japanese
human.eat(); // eat something
}
}


interface 可以 extends interface

interface A 繼承 interface B

那麼 class C implements A時,就需要將interface A和B的所有method都重寫

不然就是在class C 前方加上 abstract關鍵字,表示我有method不想重寫(我並不完整)


我的Java學習日記
留言0
查看全部
發表第一個留言支持創作者!
abstract method 一定要在 abstract class裡面 abstract class裡面不一定要有abstract method
public: 可以在任何地方存取(access) private: 只能在同class中存取 default: 只能在同package中存取 protected: 只能在同package,以及它的子class存取。不能在不同package的非子class存取
Java不能同時多重繼承 但是可以多層繼承
表面上看似改變了,但底層記憶體中的值是沒有改變的。
每個method都有一個自己的stack Instance Variable 會存在heap中 Local Variable 會存在stack中
Switch陳述式在 Java 12 之前與之後的差別
abstract method 一定要在 abstract class裡面 abstract class裡面不一定要有abstract method
public: 可以在任何地方存取(access) private: 只能在同class中存取 default: 只能在同package中存取 protected: 只能在同package,以及它的子class存取。不能在不同package的非子class存取
Java不能同時多重繼承 但是可以多層繼承
表面上看似改變了,但底層記憶體中的值是沒有改變的。
每個method都有一個自己的stack Instance Variable 會存在heap中 Local Variable 會存在stack中
Switch陳述式在 Java 12 之前與之後的差別
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
While App Development, the precision and variety of gesture recognition continue to grow, leading to more sophisticated and user-friendly apps.
Thumbnail
interface的主要作用是定義合約的函數規範,但不包含具體的實現。它提供了一種清晰的方式來描述合約之間的互動方式,從而使得不同的合約可以進行互操作性。 學校圖書館系統, 包括兩個主要的合約:Library合約和Student合約。 Library合約:這個合約負責管理圖書館的書籍,包括書籍的
Thumbnail
在 Kotlin 程式語言中,使用關鍵字「interface」來定義介面。在介面中,每個函數預設都是開放的,不需要額外使用「open」關鍵字來宣告。但是,如果你要實作介面中的屬性與函數,就需要使用「override」關鍵字。 介面只定義了方法的名稱、參數和返回值,沒有方法的具體實現。
普通的interface:有一個以上的abstract method Functinal Interface...
所有被宣告在interface中的method都是public abstract 所以interface中的method才不需要特地標上修飾符與abstract interface只體現設計方向 而如何實現此設計
Thumbnail
👨‍💻簡介 在Go語言中,Interface 是一個重要且強大的概念。Interface提供了一種方式來定義對象之間的契約,讓你可以設計更具有靈活性和可擴展性的程式碼。 你可以把Interface想像成是一種約定,讓不同的東西彼此溝通的方式變得特別靈活和好擴充,告訴程式裡的各個元件彼此要怎麼合作
Thumbnail
Immutable interface 讓封裝更有彈性,不用擔心 setter 的過度開放。當不希望物件被不允許的對象修改時,只需讓對方取得 getter 的介面即可,反之,讓能夠允許修改的對象取得有 setter 的物件即可。
Thumbnail
方法鏈接和流暢接口在許多現代編程語言和框架中都有使用。這兩個概念有時互相重疊,因為流暢接口通常使用方法鏈接來實現。使用這些技巧可以提高程式碼的可讀性和維護性,使得編碼更符合人類語言的結構。這對於在專案中協同工作的團隊尤為重要,因為它可以讓每個人更容易理解和使用代碼。
Thumbnail
界面地帶是它是在兩種振動的世界間之語言的交通系統。它是從個人到族類的閘道。啟動人類的‘群體意識’之接取點。 選擇去有意識地進入到”界面地帶”的行動當中,你就是以更高的明晰接通到了”遺傳心智”。這會導致一些更為清晰的思想程序與加強了的直覺。它也增進了那些能夠行使‘遠距治療’與‘遠距交流’之‘超知覺的感
Thumbnail
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
While App Development, the precision and variety of gesture recognition continue to grow, leading to more sophisticated and user-friendly apps.
Thumbnail
interface的主要作用是定義合約的函數規範,但不包含具體的實現。它提供了一種清晰的方式來描述合約之間的互動方式,從而使得不同的合約可以進行互操作性。 學校圖書館系統, 包括兩個主要的合約:Library合約和Student合約。 Library合約:這個合約負責管理圖書館的書籍,包括書籍的
Thumbnail
在 Kotlin 程式語言中,使用關鍵字「interface」來定義介面。在介面中,每個函數預設都是開放的,不需要額外使用「open」關鍵字來宣告。但是,如果你要實作介面中的屬性與函數,就需要使用「override」關鍵字。 介面只定義了方法的名稱、參數和返回值,沒有方法的具體實現。
普通的interface:有一個以上的abstract method Functinal Interface...
所有被宣告在interface中的method都是public abstract 所以interface中的method才不需要特地標上修飾符與abstract interface只體現設計方向 而如何實現此設計
Thumbnail
👨‍💻簡介 在Go語言中,Interface 是一個重要且強大的概念。Interface提供了一種方式來定義對象之間的契約,讓你可以設計更具有靈活性和可擴展性的程式碼。 你可以把Interface想像成是一種約定,讓不同的東西彼此溝通的方式變得特別靈活和好擴充,告訴程式裡的各個元件彼此要怎麼合作
Thumbnail
Immutable interface 讓封裝更有彈性,不用擔心 setter 的過度開放。當不希望物件被不允許的對象修改時,只需讓對方取得 getter 的介面即可,反之,讓能夠允許修改的對象取得有 setter 的物件即可。
Thumbnail
方法鏈接和流暢接口在許多現代編程語言和框架中都有使用。這兩個概念有時互相重疊,因為流暢接口通常使用方法鏈接來實現。使用這些技巧可以提高程式碼的可讀性和維護性,使得編碼更符合人類語言的結構。這對於在專案中協同工作的團隊尤為重要,因為它可以讓每個人更容易理解和使用代碼。
Thumbnail
界面地帶是它是在兩種振動的世界間之語言的交通系統。它是從個人到族類的閘道。啟動人類的‘群體意識’之接取點。 選擇去有意識地進入到”界面地帶”的行動當中,你就是以更高的明晰接通到了”遺傳心智”。這會導致一些更為清晰的思想程序與加強了的直覺。它也增進了那些能夠行使‘遠距治療’與‘遠距交流’之‘超知覺的感
Thumbnail
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。