2013-07-18 28 views
-2

使用超類參考創建對象有什麼好處?使用超類參考創建對象的實際區別

class People{ 
} 
class Child extends People{ 
} 
public class Demo{ 
public static void main(String []){ 
People p=new Child();  //line 1 
Child d=new Child();  //line 2 
} 

} 

我只是想知道實際使用此線1和線2

+3

這是一個*接口*。 –

+0

它的接口編程:http://csis.pace.edu/~bergin/papers/Interface.html –

+0

大腦:我只是舉了一個超類的例子。我沒有和界面進行過音樂會。 – chintan

回答

1

什麼是互利,共創使用超類引用一個對象?

主要好處是你可以容納任何它的子類的對象。在某些情況下,您不知道在運行時您會得到什麼對象,但是您確定會得到一個Parent類或其任何子類的對象。這可以減少代碼的大小和編寫的方法的數量。

4

List l可以參考其實施的任何對象一樣ArrayListLinkedList等。隨着第一種方法:

List l=new ArrayList(); 

以後可以更改實施不影響它引用它的代碼。

List l=new LinkedList(); 

這就是所謂的coding to an interface,不落實。它符合Liskov Substitution Principle。當你知道或預期變化和/或不同實現時,將代碼提供給接口。

我可以考慮宣佈它作爲

ArrayList ar=new ArrayList(); 

當我確信,實施不會改變未來的唯一原因(但要記住,變化是唯一不變的),我想用ArrayList具體方法在我的代碼中沒有在List界面中定義,並且您不想使用類似的演員表:

List list = new ArrayList(); 
((ArrayList) list).trimToSize(); 
相關問題