2017-06-29 136 views

回答

1

日後還可以更改爲其他類的對象。例如,

Map m = new HashMap(); 
m = new TreeMap(); 

這樣您可以隨時輕鬆更改實施。

第二點需要注意的是,通過使用接口引用,您只能調用在接口中聲明的子類的方法。

您將無法調用那些未在接口中聲明的子類的方法,因此沒有重寫方法。

0

來自Joshua Bloch's,Effective Java,他說如果可能的話,通過接口引用對象會更好。這將爲您的程序提供更大的靈活性,如果您決定要切換實現,則只需在構造函數中更改類名即可。更改實施的原因可能是更好的性能或額外的功能。

// favorable 
List users = new Vector(); 

// dont do this if possible 
Vector users = new Vector(); 

如果沒有接口存在,那麼通過類而不是接口來引用對象是完全正確的。

相關問題