菜鸡学习笔记--接口对象实例化

有这样一个接口和继承了接口的类:

interface IMessageReceiver
{
    ...
}

class MessageReceiver: IMessageReceiver
{
    ...
}

class TextReceiver: IMessageReceiver
{
    ...
}

 

在学习的过程中经常会发现这样一个情况:

IMessageReceiver receiver= new MessageReceiver();


为什么一个接口对象却用类来实例化呢?百思不得其解,直到后来发现有这样的情况:

string str;
str="This is a Test";
str="This is my first Blog";

 

  我们知道,一个变量在不同情况下,根据需要可以赋予不同的值来使用。接口对象用类来实例化也是这样的道理:在不同的情况下接口对象可以通过不同继承了此接口的类来实例化,这是一种多态性的表现。

receiver = new TextReceiver();

这样接口receiver就不是类MessageReiver的对象了,而是TextReceiver的对象,实现的是后者的方法;使类对象可以像变量一样被使用。

posted on 2016-09-11 10:46  DAantony  阅读(283)  评论(0)    收藏  举报

导航