请教:虚方法在继承时如何处理不需要的部分最好?

wu4133789 2013-09-09 11:35:31
如果,小弟刚学习面向对象的时间不久,没有相关经验,现在在承继基类对象的代码时,有个地方自己不太能理顺.求指点一下.
下面是我的示例,如果我有一个test的虚方法,其中第二行这句代码,我是不想子类当中出现的.那么我不知道如何处理比较好.
public virtual void test()
{
Console.WriteLine("代码象征");
Console.WriteLine("需要省略的代码");
Console.WriteLine("代码象征");
}
我自己能够想到的办法是再写一个虚方法XX,然后把 不想要的代码片段放到虚方法XX里面,然后再在子类当中对XX方法进行重写.
如:
void test()
{
Console.WriteLine("代码象征");
xx();
Console.WriteLine("代码象征");
}
virtual void xx()
{
Console.WriteLine("需要省略的代码");
}
在基类当中进行重写:
override void xx()
{
//完全让该函数代码空白化
}
如上所示,表示我自己所能想到的,就是这样的方法,但是个人经验不足,不知道有没有更加好的方法,想请前辈们指点一下.
希望不吝赐教.
...全文
223 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
181824442 2013-09-10
  • 打赏
  • 举报
回复
虚方法作用是让子类继承的时候进行重写。。。基类重写虚方法没意义。。 你在基类里定义一个虚方法,在子类中重写就OK了。。
智商余额不足 2013-09-10
  • 打赏
  • 举报
回复
这就行了啊,类似模版设计模式
threenewbee 2013-09-10
  • 打赏
  • 举报
回复
就是你这个办法 这个有一个专门的名词,叫Non-Virtual Interface(NVI,非虚拟接口)。 http://blog.csdn.net/acloudhuang/article/details/4465084
  • 打赏
  • 举报
回复
你的方法很好。

110,538

社区成员

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

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

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