介面的基本概念

來源:互聯網
上載者:User

在說介面前先說一下關於abstract方法的2點總結:

a.  申明為abstract了的方法一定是沒有方法體的;

b.  一個方法如果沒有方法體,那麼必須申明為abstract;

這就不像類(class)了,我們以前說過,一個類即使不包含abstract方法,它也可以申明

為abstract類。下面就開始談談介面(interface)吧。

介面可以說就是一組規範(requirement),它只告訴你要做什麼(do what),而不告訴你怎麼去做(how to do),具體的實現(implementation)都是類(class)的工作。

1.  為什麼要使用介面

為什麼要使用介面呢?為什麼不直接在類中定義並實現一個方法呢?我認為(注意:個

人看法而已)是為了編程的靈活性與簡單性。使用了介面我們充分利用java的多態(polymorphism)與動態綁定機制,這也與面向介面的編程設計模式相符合,我們可以很簡單編寫代碼。例如有介面interface People,那麼對於任何一個實現了它的類如Doctor,我們都可以把它的對象賦值給People型別的reference,例如People p=new Doctor()。這樣的話我們可以把變數讀申明為People型別的,然後調用方法的話就讓JVM自己去找該調用哪個實作類別的那個方法咯。

另外一個原因就是因為在java中一個類只能有一個父類,就像一個人只能有一個父親一樣。但是一個類可以實現很多個介面,只要它願意實現,這就為我們提供了方便之門。本來介面和父類就是非常相似的,起的作用也很相似,在UML中就把interface稱作衍型,是對類這個概念的擴充或者是補充。突然想起一個比喻來形容父類和介面了:一個人只能有一個父親,但是他可以有若干個叔叔或者舅舅,人有些特徵像叔叔或者舅舅也是很正常的拉,^_^。在C++中一個類就可以有多個父類,這叫多重繼承(multiple inheritance),在java中通過介面實現了這個功能。

2.  interface具有哪些特徵

首先,介面不能夠執行個體化,即不能對其使用new運算子,雖然我們不能建立介面對象,

但是可以聲明介面變數,前面有樣本;其次,介面中的方法都預設為public abstract類型的,執行個體都預設為pubic static final類型的,都不能使用任何其它的修飾符;再次,介面可以像類那樣使用繼承機制,當然必須都是介面咯。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.