2017-06-29 45 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(); 

如果没有接口存在,那么通过类而不是接口来引用对象是完全正确的。

相关问题