您的位置:程序门 -> java -> j2se / 基础类



请大虾指教两种实例化的区别?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请大虾指教两种实例化的区别?[已结贴,结贴人:aaron9979215]
发表于:2007-03-12 16:38:38 楼主
interface   analyzer
{……}
class   documentanalyzer   extends   analyzer
{……}

请问下面两种实例化方式有何区别?

(1)   analyzer   textanalyzer=new   documentanalyzer();

(2)   documentanalyzer   textanalyzet=new   documentanalyzet();


如果没有区别,为什么java不把这两种方式统一起来?
发表于:2007-03-12 16:47:231楼 得分:5
有区别。

第(1)种方法,限制了你下面对textanalyzer变量只能调用analyzer接口中定义的方法。
发表于:2007-03-12 16:48:002楼 得分:5
如果   不   需要   documentanalyzer里有   而   analyzer里没有   的方法,用第一种。
就是说,如果analyzer能满足你了,就用第1种。

发表于:2007-03-12 17:15:053楼 得分:5
用第一种好些,可以隐藏具体实现,针对接口编程。
方便换成接口的另外一个实现,不必修改源代码,或者只需要修改很少的代码·!
发表于:2007-03-12 17:28:424楼 得分:5
更常用的例子
一般在使用容器对象时建议使用接口,如

set   set   =   new   hashset();
这样以后你想改用linkedhashset,   treeset   时只要改一个地方就好了。


快速检索

最新资讯
热门点击