1. 程式人生 > >java為什麼要使用介面回撥

java為什麼要使用介面回撥

也許你在程式設計的過程中會發現這樣一行程式碼:格式如:
介面 介面變數 = new 介面 子類();

Link<String>  link = new ArrayList<String>();
//Link為一個介面 ArrayList為一個泛型類

那麼為什麼前面要用介面引用new 出來的物件呢?

可以告訴你的是,這是介面的回撥,是介面多型的一種方式。

但是為什麼要這樣使用呢?其優點在哪裡?有什麼缺點?

在回答之前,我先介紹一下介面相關內容。

**

介面是java一種重要的資料型別,用介面宣告的變數稱為介面變數,介面屬於引用型變數,介面變數中可以存放實現該介面的類的例項的引用,即存放物件的引用。

**
下面舉例說明為什麼要這麼使用:

//1.Collection co = new ArrayList();

//2.ArrayList co = new ArrayList();

我們一般情況下使用的是第二種方法,如果使用第一種方法會導致co中沒有ArrayList的方法,但是這樣的話,便可以遮蔽具體的方法的實現,換而言之,只需要知道co做什麼,而不是怎麼做。如果有一天ArrayList換成了另一種的實現如anotherlist呢,我們第一種方法只要修改new的地方,物件co還能繼續使用,然而第二種便不能了。如果只有一種實現,那麼介面便沒有存在的必要,介面本身就是為了多實現而存在的。