接口:声明具有继承接口的类

时间:2013-08-18 05:53:03

标签: c# oop

我不确定这是什么电话或如何谷歌解释,但这里是

让我说我有一个接口调用IView和一个继承IView的类调用View类。在某些项目中,我看到以下代码:

IView view = new View();

为什么这样?为什么不做呢

var view = new View();

是否有用于声明接口然后创建View对象的目的?为什么不做第二步?

2 个答案:

答案 0 :(得分:2)

如果您使用var关键字,则会自动检测变量的类型,可能属于View类型,而不是IView。对于您的代码的读者来说,您实际上希望拥有IView引用更清楚。

接口的概念是,哪个类实现它们并不重要,所以你的代码建立在知道这个..的东西..实现所有IView的属性和方法,忽略它是哪个类。

这样的设置可以让您以后轻松插入不同的类。您可以将此行替换为对IView factory的调用,但您根本不知道它返回的是哪个类实例。

答案 1 :(得分:1)

您可能需要查看除了View之外的其他内容,例如,如果View是一个SpecialView类,那么var view将不允许您稍后为其分配GenericView的内容,即使他们都有一个IView接口。