`

AO中为什么不能直接用类来实例化?

    博客分类:
  • GIS
阅读更多
在AO开发中,经常会遇到类似的声明:
IBasicMap pMap=new MapClass();
于是就会产生这种疑问,为什么不这样声明呢?
MapClass pMap=new MapClass();
如果这样声明,将会编译错误,不能通过类的全权名进行方法的调用,只能用接口实例来访问。
这是因为Class(如上例中MapClass)里实现相关接口的方法, 属性是以显式接口的方式实现的。
举个简单的例子:
    interface IZou
    {
       void start();
       void stop();
    }
     class Person : IZou
    {
        void IZou.start()//注:显式接口
        MessageBox.Show("开始走");
    }

如果此时用
Person p=new Person();

就会产生编译错误。
只能用
IZou p=new Person();
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics