使用超類參考創建對象有什麼好處?使用超類參考創建對象的實際區別
像
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
使用超類參考創建對象有什麼好處?使用超類參考創建對象的實際區別
像
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
什麼是互利,共創使用超類引用一個對象?
主要好處是你可以容納任何它的子類的對象。在某些情況下,您不知道在運行時您會得到什麼對象,但是您確定會得到一個Parent類或其任何子類的對象。這可以減少代碼的大小和編寫的方法的數量。
List l
可以參考其實施的任何對象一樣ArrayList
,LinkedList
等。隨着第一種方法:
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();
這是一個*接口*。 –
它的接口編程:http://csis.pace.edu/~bergin/papers/Interface.html –
大腦:我只是舉了一個超類的例子。我沒有和界面進行過音樂會。 – chintan