原先在爷爷类里定义的虚方法,在儿子类里实现的
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里继承它写实现方法除了这种还有没有更好的办法?请高手指教!!

解决方案 »

  1.   

    class c已经继承了class b了,自然class b的Add()方法也是class c的方法了。
      

  2.   

    是的
    class b是一个通用的基类
    现在有些不通用的功能我觉得应该在class c中实现
    所以有此需求
      

  3.   

    这个样子?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();
    }
    }
      

  4.   

    用Compsite模式把b、c类共存于一个类中。