實現(xiàn)接口
要聲明實現(xiàn)接口的類,請在類聲明中包含implements子句,你的類可以實現(xiàn)多個接口,因此implements關(guān)鍵字后面跟著由類實現(xiàn)的接口的逗號分隔列表,按照慣例,如果有extends子句,則implements子句緊跟其后。
樣例接口,Relatable考慮一個定義如何比較對象大小的接口。
public interface Relatable { // this (object calling isLargerThan) // and other must be instances of // the same class returns 1, 0, -1 // if this is greater than, // equal to, or less than other public int isLargerThan(Relatable other); }
如果你希望能夠比較類似對象的大小,無論它們是什么,實例化它們的類都應(yīng)該實現(xiàn)Relatable。
如果有某種方法來比較從類中實例化的對象的相對“大小”,任何類都可以實現(xiàn)Relatable,對于字符串,它可以是字符數(shù),對于書籍,它可以是頁數(shù),對于學(xué)生來說,它可能是重量,等等。對于平面幾何對象,面積將是一個不錯的選擇(參見后面的RectanglePlus類),而體積適用于三維幾何對象,所有這些類都可以實現(xiàn)isLargerThan()方法。
如果你知道某個類實現(xiàn)了Relatable,那么你就知道可以比較從該類實例化的對象的大小。
實現(xiàn)Relatable接口這是在創(chuàng)建對象部分中展現(xiàn)的Rectangle類,為實現(xiàn)Relatable而重寫。
public class RectanglePlus implements Relatable { public int width = 0; public int height = 0; public Point origin; // four constructors public RectanglePlus() { origin = new Point(0, 0); } public RectanglePlus(Point p) { origin = p; } public RectanglePlus(int w, int h) { origin = new Point(0, 0); width = w; height = h; } public RectanglePlus(Point p, int w, int h) { origin = p; width = w; height = h; } // a method for moving the rectangle public void move(int x, int y) { origin.x = x; origin.y = y; } // a method for computing // the area of the rectangle public int getArea() { return width * height; } // a method required to implement // the Relatable interface public int isLargerThan(Relatable other) { RectanglePlus otherRect = (RectanglePlus)other; if (this.getArea() < otherRect.getArea()) return -1; else if (this.getArea() > otherRect.getArea()) return 1; else return 0; } }
因為RectanglePlus實現(xiàn)了Relatable,所以可以比較任何兩個RectanglePlus對象的大小。
isLargerThan方法(在Relatable接口中定義)采用Relatable類型的對象,示例中other轉(zhuǎn)換為RectanglePlus實例,類型轉(zhuǎn)換告訴編譯器對象到底是什么,直接在other實例上調(diào)用getArea(other.getArea())將無法編譯,因為編譯器不理解other實際上是RectanglePlus的實例。上一篇:定義接口 下一篇:將接口用作類型
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/72881.html
Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實踐沒有利用在后續(xù)版本中引入的改進。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實用指南,其中包括數(shù)百個完整的工作示例和數(shù)十個課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...
集合介紹 本節(jié)介紹Java集合框架,在這里,你將了解集合是什么以及它們?nèi)绾问鼓愕墓ぷ鞲p松、程序更好,你將了解構(gòu)成Java集合框架的核心元素 — 接口、實現(xiàn)、聚合操作和算法。 集合 — 有時稱為容器 — 只是一個將多個元素組合到一個單元中的對象,集合用于存儲、檢索、操作和傳遞聚合數(shù)據(jù)。通常,它們代表形成自然組的數(shù)據(jù)項,例如撲克牌(卡片集合)、郵件文件夾(信件集合)或電話目錄(名稱到電話號碼的映射)...
接口 軟件工程中存在許多情況,當(dāng)不同的程序員團隊同意一份合約來闡明他們的軟件如何交互時很重要,每個組都應(yīng)該能夠在不知道如何編寫其他組代碼的情況下編寫代碼,一般來說,接口就是這樣的合約。 例如,想象一個未來主義社會,計算機控制的機器人汽車在沒有人工操作員的情況下將乘客運送到城市街道,汽車制造商編寫操作汽車的軟件(當(dāng)然是Java) - 停止,啟動,加速,向左轉(zhuǎn),等等,另一個工業(yè)集團,電子制導(dǎo)儀器制造商...
集合接口 核心集合接口封裝了不同類型的集合,如下圖所示,這些接口允許獨立于其表示的細節(jié)來操縱集合,核心集合接口是Java集合框架的基礎(chǔ),如下圖所示,核心集合接口形成層次結(jié)構(gòu)。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類推,另請注意,層次結(jié)構(gòu)...
Queue接口 Queue是在處理之前保存元素的集合,除了基本的Collection操作外,隊列還提供額外的插入、刪除和檢查操作,Queue接口如下。 public interface Queue extends Collection { E element(); boolean offer(E e); E peek(); E poll(); E remov...
閱讀 750·2019-08-30 15:44
閱讀 1490·2019-08-30 11:02
閱讀 3064·2019-08-29 18:42
閱讀 3593·2019-08-29 16:16
閱讀 1832·2019-08-26 13:55
閱讀 1843·2019-08-26 13:45
閱讀 2460·2019-08-26 11:43
閱讀 3349·2019-08-26 10:32