CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

静态接口问题。

楼主simpsons(辛普森)2006-07-02 12:31:50 在 .NET技术 / C# 提问

///  
  ///接口  
  ///  
  public   interface   IAnimal  
  {  
      void   SetName(string   name);  
  }  
   
  ///  
  ///继承接口的实体类  
  ///  
  public   class   Cat   :   IAnimal  
  {  
        //name属性  
        private   _Name  
        public   string   Name  
        {  
            get{return   _Name;}  
            set{_Name=value;}  
        }  
   
        //实现接口的SetName方法  
        public   void   SetName(string   name)  
        {  
              this.Name   =   name;    
        }  
  }  
   
   
  ///  
  ///业务层方法  
  ///  
  public   class   BLL_Cat  
  {  
   
        private   static   IAnimal   objCat   =   new   Cat();   //静态接口,问题来了,继续看。  
   
        public   void   SetName(string   value)  
        {  
            objCat.SetName(value);  
        }  
        ...  
  }  
   
   
  ///  
  ///用户层  
  ///  
  public   class   WebApplication1  
  {  
        BLL_Cat   cat1   =   new   BLL_Cat();  
        cat1.SetName("first   cat   name");   //给第一只cat取一个name  
   
        BLL_Cat   cat2   =   new   BLL_Cat();  
        cat2.SetName("second   cat   name");   //给第二只cat取一个name  
   
  }  
   
   
  ======================  
   
  问题是:  
   
  1.   在业务层中,声明了一个静态的接口类型的实例,那么在用户层中,'给第二只cat取一个name'时,第一只cat的name会不会改变呢?  
  2.   如果把“private   static     IAnimal   objCat   =   new   Cat();   ”,改成“private   IAnimal   objCat   =   new   Cat();   ”呢?  
  3.   如果把“private   static   IAnimal   objCat   =   new   Cat();   ”,改成“private   Cat   objCat   =   new   Cat();”呢?  
   
  谢谢。 问题点数:50、回复次数:2Top

1 楼JeffreyZhao()回复于 2006-07-02 13:14:23 得分 50

1.会,不管BLL_Cat是什么实例,SetName方法修改的总是那个static的objCat。  
  2.不会,objCat是类实例的成员了。  
  3.Cat还是IAnimal和这个问题无关,和2属于一种情况。Top

2 楼simpsons(辛普森)回复于 2006-07-02 14:37:34 得分 0

同意。我试过了。结贴。Top

相关问题

关键词

得分解答快速导航

  • 帖主:simpsons
  • JeffreyZhao

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo