菜鸡学习笔记--接口对象实例化
有这样一个接口和继承了接口的类:
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的对象,实现的是后者的方法;使类对象可以像变量一样被使用。
浙公网安备 33010602011771号