2012-08-01 55 views
0

我正在閱讀一本關於android的書,但是在一個minibook中刷了一些java東西。我已經閱讀了一本關於Java的書,並且知道接口。這些書說跨類級別的界面「切割」

接口實現層次結構(如果你可以稱之爲 「層次結構」)跨越類擴展層次結構。這個想法是圖4-1所示的 ,其中我垂直顯示類擴展 並水平顯示接口實現。 (Android的 KeyboardView類生活在android.inputmethod服務包。 都KeyboardView和清單4-3 實現Android的OnClickListener接口在自產自銷myListener的類。)

Interface Cutting Across Classs Heirarchy

畢,巴里(2011-11 -14)。 Android應用程序開發All-in-One 對於傻瓜(p。197)。約翰威利和兒子。 Kindle版。

「切割類橫紋」是否意味着兄弟類都擴展了界面......我不明白他們用這個圖表指出的更多,並說它橫切了垂直類的垂直領空在圖4-3中......請解釋一下,如果有特殊的概念,比我離開了它更深...

回答

2

無論是MyListenerKeyboardView - 班實行OnClickListener -interface。這使得這兩類OnClickListener s。

這個想法如下:每個類都來自基類(Object是最基本的類)。這使得每個班級都是Object。根據面向對象的思考,你可以說的最抽象的事情是是,它是一個對象。回到界面,我們假設你有兩個界面,SingerWriter。一個人可以成爲一名歌手,一個人可以成爲一名作家。但是他/她也可以兼得。

實現Singer和/或Writer告訴你更多關於對象的信息。有些代碼:

class Guy implements Singer, Writer{ 
    // Empty 
} 
Guy chris = new Guy(); 

hireWriter(chris); // Accepts "Writer" as it's parameter 
hireSinger(chris); // Accepts "Singer" as it's parameter 

通過實現界面,你告訴你的代碼,這個目標是:

  1. Object
  2. 一個Singer
  3. 一個Writer

通過提供關於類的更多信息,這種「通過類層次結構切入」通過不從更多的類派生,而是通過實現接口。

+0

感謝@Lukas Knuth我認爲幫助我的最重要的事情不僅僅是它說明了我認爲是陳述的內容,而且你在hireWriter中展示的內容以及hireSigner呼籲根據參數看到Guy類兩個分開的事情。 – 2012-08-01 23:40:09