CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

没想明白,屏蔽基类的相关属性

楼主showjancn(难得一剑)2006-11-01 08:23:37 在 .NET技术 / C# 提问

我派生了一个新类,增加了新的功能,从而倒致从基类继承来的某些属性是多余或有冲突,必须屏蔽掉,即在派生类中不能再可视了,我想要是私有继承也就解决了,但这样又一棍子打死了所有。个位有没什么好方法?  
  谢谢!! 问题点数:20、回复次数:5Top

1 楼Knight94(愚翁)回复于 2006-11-01 08:44:34 得分 4

to   我派生了一个新类,增加了新的功能,从而倒致从基类继承来的某些属性是多余或有冲突,必须屏蔽掉,即在派生类中不能再可视了,我想要是私有继承也就解决了,但这样又一棍子打死了所有。个位有没什么好方法?  
   
  用new关键字,例如:  
  public   class   baseclass  
  {  
          public   void   Test();  
  }  
   
  public   class   subclass:baseclass  
  {  
          public   new   void   Test();  
  }Top

2 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2006-11-01 08:53:42 得分 0

原因有二:  
  基类设计的不合理  
  你的继承处理不合理  
  解决办法有三:  
  重新设计基类  
  重新设计派生类  
  基类和派生类都从另外的接口或者基类派生Top

3 楼liujia_0421(SnowLover)回复于 2006-11-01 09:11:42 得分 10

继承下来的东西肯定会存在的,不能够屏蔽,   当然可以使其方法或属性不在vs的智能提示框里出现是可以的   ,举个例子吧:  
   
  public       class       a        
      {        
      private       int       count       =       0;        
      [BrowsableAttribute(true)]        
      public       int       Count        
      {        
      get        
      {        
      return       count;        
      }        
      set        
      {        
      count       =       value;        
      }        
      }        
      }        
      public       class       b:       a        
      {        
      [BrowsableAttribute(false)]//       重新定义Count属性且不显示        
      public       new       int       Count        
      {        
      get        
      {        
      return       base.Count;        
      }        
      set        
      {        
      base.Count       =       value;        
      }        
      }        
      }        
   
  参考一下,试试看吧...  
  Top

4 楼qltouming(缘木渔人-临渊羡鱼,不若退而结网)回复于 2006-11-01 09:27:48 得分 0

最近也在考虑类似的问题,在这里想和Knight94(愚翁)讨论下,使用New关键字后,调用subclass的时候是看不到baseclassr的Test()方法了,但subclass却有了自己的Test()方法,且可以被看到.是否subclass的Test()方法不应该给予实现呢?Top

5 楼liujia_0421(SnowLover)回复于 2006-11-01 09:28:05 得分 6

如果是屏蔽组件显示的属性以及方法   ,倒可以参考一下这篇文章:  
  http://bbs.mscommunity.com/Forums/ShowThread.aspx?PostID=17169Top

相关问题

关键词

得分解答快速导航

  • 帖主:showjancn
  • Knight94
  • liujia_0421
  • liujia_0421

相关链接

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

广告也精彩

反馈

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