关于面向对象的很菜的问题!送分

dahaig 2005-11-28 05:25:53
原先在爷爷类里定义的虚方法,在儿子类里实现的
public class a
{
public void a()
{
Add();
}
public virtual void Add()
{
}
}

public class b:a
{
public override void Add
{
//Do SomeThing
}
}

public class c:b
{

}

现在想:
原先放在class b里头的Do something 完全放在孙子类class c里
或者:把Do something方法拆成Dosomething1和Dosomething2。在B里做Dosomething1,c里做Dosomething2

我只想到在B里仍然定义虚函数,在C里继承它写实现方法

除了这种还有没有更好的办法?请高手指教!!
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yitiaoming2003 2005-11-28
  • 打赏
  • 举报
回复
用Compsite模式把b、c类共存于一个类中。
xvting 2005-11-28
  • 打赏
  • 举报
回复
这个样子?

using System;

public class a

{
public a()
{
Add();
}
public virtual void Add()
{

}
}

public class b:a
{
public override void Add()

{
//Do SomeThing1
Console.Write(" b:SomeThing1");

//Do SomeThing2
SomeThing2();
}

public virtual void SomeThing2()
{
Console.Write(" b:SomeThing2");
}

}

public class c:b
{
public override void SomeThing2()
{
//base.SomeThing2 ();

Console.WriteLine(" c:SomeThing2");
}


}

class Class1
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main(string[] args)
{
new c();
Console.ReadLine();
}
}
dahaig 2005-11-28
  • 打赏
  • 举报
回复
是的
class b是一个通用的基类
现在有些不通用的功能我觉得应该在class c中实现
所以有此需求
jxufewbt 2005-11-28
  • 打赏
  • 举报
回复
class c已经继承了class b了,自然class b的Add()方法也是class c的方法了。

110,566

社区成员

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

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

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