如何避免在每个子类中直接调用父构造函数? (模板?)

时间:2014-11-28 20:12:42

标签: c# inheritance

我不知道这是否可行。但是我在我的项目中有一个类,它将继承许多次,让我们称这个类为父类:

public abstract class Parent
{
    protected object[] parameters;
    protected int other, useful, inherited, variables;

    public Parent(params object[] plist)
    {
        parameters = plist;
        Action();
    }
    abstract protected void Action();
}

现在,对于每个继承的子进程,构造函数将完全相同:一个参数列表就像父进程一样,它所做的只是将这个列表传递给基础构造函数,如下所示:

public class Child : Parent
{
    public Child(params object[] plist) : base(plist) { } // <---- HERE

    override protected void Action()
    {
        string aParameter = (string)parameters[0];
        Console.WriteLine("Hello " + aParameter);
    }
}

我想要做的是避免写下标有&#34; HERE&#34;每个孩子班(会有很多)。理想情况下,能够使用某种模板来编写许多子代,程序员(我,其他人)不必重复指定构造函数。

有更好的方法吗?也许我需要的是一种不同的方法。所有我真正想要的&#34;孩子&#34;要做的类是每次都覆盖一个函数,并且能够尽可能紧凑地编写,几乎就像Parent实际上只是某种模板一样。


编辑:在人们将此标记为重复并关闭之前(因为它似乎答案为否)。我也在问我是否有另一种方法,我不知道。例如,也许我使用类和继承的方法是错误的,而我需要_______?可能是它不是父类和子类,而是模板等

0 个答案:

没有答案