如何隐藏基类中的成员?

wufanglu 2010-07-29 01:46:58
类有继承功能,有没有退化功能呀?

public class 鱼类
{
public string 鳍 { get; set; }
public void 水中游();
}

public class 猴子 : 鱼类
{
public override string ~鳍 { get; set; } //退化
public override string 四肢 { get; set; }

public void ~水中游(); //退化
public void 陆上走();
}
...全文
278 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
hangang7403 2010-08-05
  • 打赏
  • 举报
回复
同意13楼的
xiaoyi_nuo 2010-08-05
  • 打赏
  • 举报
回复
用类创建一个对象,然后new一下不就隐藏基类的成员了么~~~~~
wufanglu 2010-08-05
  • 打赏
  • 举报
回复
看来只有加特性了:
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]

可惜 FROM MSDN: 在 Visual C# 中,EditorBrowsableAttribute 不禁止显示同一程序集中类的成员。
YapingXin 2010-08-05
  • 打赏
  • 举报
回复
设为Private属性。
laomengzi 2010-08-04
  • 打赏
  • 举报
回复
子类可以扩展它的直接基类,子类能够在继承基类的基础上添加新的成员,但是不能移除继承成员的定义。
aoyunhui_0804 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 flyerwing 的回复:]
引用 1 楼 daihua_1113 的回复:
用 new来隐藏

因为后面“鳍”是退化了==>退化了的还是存在的
要不虚一下重写也挺好
[/Quote]
+++
aysxarms 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xiaozhi_5638 的回复:]

呵呵 俺理解了LZ的意思
莫非LZ是说 有的动物是从鱼类继承 它们没有退化 还有 鳍
而有的动物也是从鱼类继承 但他们退化了 没有了 鳍
LZ想要满足两种情况下的继承情况吗?
[/Quote]

有种达尔文的感觉....
flyerwing 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 daihua_1113 的回复:]
用 new来隐藏
[/Quote]
因为后面“鳍”是退化了==>退化了的还是存在的
要不虚一下重写也挺好
wufanglu 2010-08-04
  • 打赏
  • 举报
回复
关键是 new 需要替补代码,而不是让其“good-bye”。
chuanzhang5687 2010-08-03
  • 打赏
  • 举报
回复
new 修饰符 ,向基类成员隐藏继承成员
wufanglu 2010-08-02
  • 打赏
  • 举报
回复
也就是说继承只能加东东,不能减东东喽?
fingternest 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 wufanglu 的回复:]
类有继承功能,有没有退化功能呀?


C# code
public class 鱼类
{
public string 鳍 { get; set; }
public void 水中游();
}

public class 猴子 : 鱼类
{
public override string ~鳍 { get; set; } //退化
public ove……
[/Quote]
既然以前在父类的中的功能都已经退化了,就不具备父类的特征了,它已经进化成为一个新类了。
此时就不适合继承了,直接new一个新类就ok了。
soaringbird 2010-08-02
  • 打赏
  • 举报
回复
不但是设计错误,而且是概念错误
wxm3630478 2010-08-02
  • 打赏
  • 举报
回复


你说的隐藏,就是让[子类]里面访问不了父类里面公开的某个属性或者方法吗?

父类的一些属性不在子类里面表现出来?

你上面举的例子,就是猴子类不要[~鳍]这个属性,也不让访问父类的[~鳍]属性
----------------------------------------

1.这个就不知道C#里面提没提供

2.如13楼说的,设计错误,你可以根据一些动物的不同特点,设计出一些接口出来

一个动物类 + 一些特殊动物的接口 应该可以解决
请叫我卷福 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yjlove51 的回复:]
这是设计错误,建议去看下大话设计模式。
只有猴子属于鱼,才能继承鱼。
[/Quote]
不需要这样的要求
采用继承方式的适配器模式中就不满足此类要求
Valefish 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yjlove51 的回复:]
这是设计错误,建议去看下大话设计模式。
只有猴子属于鱼,才能继承鱼。
[/Quote]

+1
yjlove51 2010-08-02
  • 打赏
  • 举报
回复
这是设计错误,建议去看下大话设计模式。
只有猴子属于鱼,才能继承鱼。

请叫我卷福 2010-08-02
  • 打赏
  • 举报
回复
呵呵 俺理解了LZ的意思
莫非LZ是说 有的动物是从鱼类继承 它们没有退化 还有 鳍
而有的动物也是从鱼类继承 但他们退化了 没有了 鳍
LZ想要满足两种情况下的继承情况吗?
风之影子 2010-08-02
  • 打赏
  • 举报
回复
new既可
加载更多回复(10)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧