请大虾指教两种实例化的区别?
interface   Analyzer 
 {……} 
 class   DocumentAnalyzer   extends   Analyzer 
 {……}   
 请问下面两种实例化方式有何区别?   
 (1)   Analyzer   textAnalyzer=new   DocumentAnalyzer();   
 (2)   DocumentAnalyzer   textAnalyzet=new   DocumentAnalyzet();     
 如果没有区别,为什么java不把这两种方式统一起来? 
------解决方案--------------------有区别。   
 第(1)种方法,限制了你下面对textAnalyzer变量只能调用Analyzer接口中定义的方法。
------解决方案--------------------如果 不 需要 DocumentAnalyzer里有 而 Analyzer里没有 的方法,用第一种。 
 就是说,如果Analyzer能满足你了,就用第1种。   
------解决方案--------------------用第一种好些,可以隐藏具体实现,针对接口编程。 
 方便换成接口的另外一个实现,不必修改源代码,或者只需要修改很少的代码·!
------解决方案--------------------更常用的例子 
 一般在使用容器对象时建议使用接口,如   
 Set set = new HashSet(); 
 这样以后你想改用LinkedHashSet, TreeSet 时只要改一个地方就好了。