请教一个关于接口(interface)的问题

sh_city 2006-10-30 10:12:08
interface IInterfaceA
{
void DoSomething();
}

interface IInterfaceB:IInterfaceA
{
new void DoSomething();//隐藏基接口的成员
}

//这两个接口有什么不一样吗?好像IInterfaceB隐藏IInterfaceA的成员DoSomething也没什么作用啊.
//能举个简单的例子(代码)帮我理解一下吗。谢谢。

...全文
409 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qltouming 2006-10-30
  • 打赏
  • 举报
回复
以上你自举的例子,只是分别实现了那两个接口,实现了,但还没“用起来”,明白么?
你另写一个调用的例子,分别调用TestA和TestB这两个类,得到的结果就不同了。

你可能还会说,这样简单的事情,是否有点小题大作。
设想一下,如果你需求的TestA和TestB这两个类,都有很多的方法和属性,唯独在DoSomething()这个方法里略有不同……那么这个时候用这种隐藏基接口的成员的方法就特别管用了。

也许你在看一本书,讲解中举这个简单的例子来说明这样一种用法,别局限于示例本身,根据它的特点发散思维试试
sh_city 2006-10-30
  • 打赏
  • 举报
回复
interface IInterfaceA
{
void DoSomething();
}

interface IInterfaceB:IInterfaceA
{
new void DoSomething();//隐藏基接口的成员
}

//这两个接口有什么不一样吗?好像IInterfaceB隐藏IInterfaceA的成员DoSomething也没什么作用啊.
//能举个简单的例子(代码)帮我理解一下吗。谢谢。

public class TestA:IInterfaceA
{
public void DoSomething()
{
HttpContext.Current.Response.Write("11");
}
}

public class TestB:IInterfaceB
{
public void DoSomething()
{
HttpContext.Current.Response.Write("22");
}
}

//用了这两上类也没办法看出用了 new 隐藏基接口的成员 有什么不同
viena 2006-10-30
  • 打赏
  • 举报
回复
//这两个接口有什么不一样吗
本身没有什么不一样
不一样的在于定义不同的逻辑
sh_city 2006-10-30
  • 打赏
  • 举报
回复
qltouming(缘木渔人):能否稍详细一点.最好能贴个简单的例子给我,可以吗.非常感谢.
qltouming 2006-10-30
  • 打赏
  • 举报
回复
如果要在IInterfaceB中赋予DoSomething不同的含义或特性,这时候就有用了.

110,535

社区成员

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

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

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