將接口用作類型
定義新接口時(shí),你將定義新的引用數(shù)據(jù)類型,你可以在任何可以使用任何其他數(shù)據(jù)類型名稱的地方使用接口名稱,如果定義類型為接口的引用變量,則分配給它的任何對(duì)象都必須是實(shí)現(xiàn)接口的類的實(shí)例。
作為示例,這里是一種用于查找一對(duì)對(duì)象中的最大對(duì)象的方法,用于從實(shí)現(xiàn)Relatable的類實(shí)例化的任何對(duì)象:
public Object findLargest(Object object1, Object object2) { Relatable obj1 = (Relatable)object1; Relatable obj2 = (Relatable)object2; if ((obj1).isLargerThan(obj2) > 0) return object1; else return object2; }
通過將object1轉(zhuǎn)換為Relatable類型,它可以調(diào)用isLargerThan方法。
如果你在各種類中實(shí)現(xiàn)Relatable,那么可以將從這些類中實(shí)例化的對(duì)象使用findLargest()方法進(jìn)行比較 — 前提是兩個(gè)對(duì)象屬于同一個(gè)類,同樣,它們都可以使用以下方法進(jìn)行比較:
public Object findSmallest(Object object1, Object object2) { Relatable obj1 = (Relatable)object1; Relatable obj2 = (Relatable)object2; if ((obj1).isLargerThan(obj2) < 0) return object1; else return object2; } public boolean isEqual(Object object1, Object object2) { Relatable obj1 = (Relatable)object1; Relatable obj2 = (Relatable)object2; if ( (obj1).isLargerThan(obj2) == 0) return true; else return false; }
這些方法適用于任何“relatable”對(duì)象,無論它們的類繼承是什么,當(dāng)它們實(shí)現(xiàn)Relatable時(shí),它們可以是它們自己的類(或超類)類型和Relatable類型,這為它們提供了多重繼承的一些優(yōu)點(diǎn),他們可以從超類和接口獲得行為。
上一篇:實(shí)現(xiàn)接口 下一篇:不斷發(fā)展的接口文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72880.html
Deque接口 通常讀作deck,deque是雙端隊(duì)列,雙端隊(duì)列是元素的線性集合,支持在兩個(gè)端點(diǎn)處插入和移除元素,Deque接口是比Stack和Queue更豐富的抽象數(shù)據(jù)類型,因?yàn)樗瑫r(shí)實(shí)現(xiàn)堆棧和隊(duì)列。Deque接口定義了訪問Deque實(shí)例兩端元素的方法,提供了插入、移除和檢查元素的方法,ArrayDeque和LinkedList等預(yù)定義類實(shí)現(xiàn)了Deque接口。 請(qǐng)注意,Deque接口既可以用作后...
Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實(shí)踐沒有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...
接口 軟件工程中存在許多情況,當(dāng)不同的程序員團(tuán)隊(duì)同意一份合約來闡明他們的軟件如何交互時(shí)很重要,每個(gè)組都應(yīng)該能夠在不知道如何編寫其他組代碼的情況下編寫代碼,一般來說,接口就是這樣的合約。 例如,想象一個(gè)未來主義社會(huì),計(jì)算機(jī)控制的機(jī)器人汽車在沒有人工操作員的情況下將乘客運(yùn)送到城市街道,汽車制造商編寫操作汽車的軟件(當(dāng)然是Java) - 停止,啟動(dòng),加速,向左轉(zhuǎn),等等,另一個(gè)工業(yè)集團(tuán),電子制導(dǎo)儀器制造商...
實(shí)現(xiàn)接口 要聲明實(shí)現(xiàn)接口的類,請(qǐng)?jiān)陬惵暶髦邪琲mplements子句,你的類可以實(shí)現(xiàn)多個(gè)接口,因此implements關(guān)鍵字后面跟著由類實(shí)現(xiàn)的接口的逗號(hào)分隔列表,按照慣例,如果有extends子句,則implements子句緊跟其后。 樣例接口,Relatable 考慮一個(gè)定義如何比較對(duì)象大小的接口。 public interface Relatable { // th...
包 本課程解釋了如何將類和接口捆綁到包中,如何使用包中的類,以及如何安排文件系統(tǒng)以便編譯器可以找到源文件。 創(chuàng)建和使用包 為了使類型更易于查找和使用,避免命名沖突和控制訪問,程序員將相關(guān)類型的組捆綁到包中。 定義:包是一組提供訪問保護(hù)和名稱空間管理的相關(guān)類型,請(qǐng)注意,類型引用類、接口、枚舉和注解類型,枚舉和注解類型分別是特殊的類和接口,因此在本課中通常將類型簡稱為類和接口。 作為Java平臺(tái)一部...
閱讀 1794·2023-04-25 22:42
閱讀 2218·2021-09-22 15:16
閱讀 3496·2021-08-30 09:44
閱讀 493·2019-08-29 16:44
閱讀 3316·2019-08-29 16:20
閱讀 2523·2019-08-29 16:12
閱讀 3395·2019-08-29 16:07
閱讀 673·2019-08-29 15:08