父类中不需要重写的方法签名

本文关键字:方法 重写 不需要 父类 | 更新日期: 2023-09-27 17:50:19

我有一个父类,它包含两个同名的方法,但采用不同的参数:

protected abstract void FilterByLetter(char a);
protected abstract void FilterByLetter(char a, char b);
在实践中,在每个从它继承的类中只需要使用其中一个。是否有一种方法可以允许一个被覆盖而不需要另一个?

父类中不需要重写的方法签名

创建两个新的抽象基类,它们只覆盖其中一个方法,并继承它们的子类:

public abstract class A : OriginalBaseClass
{
    protected override void FilterByLetter(char a)
    {
        // Don't do anything
    }
}
public abstract class B : OriginalBaseClass
{
    protected override void FilterByLetter(char a, char b)
    {
        // Don't do anything
    }
}
public class ClassThatNeedsOnlyTwoParameterOverload : A
{
    protected override void FilterByLetter(char a, char b)
    {
        // Add necessary code
    }
}
public class ClassThatNeedsOnlyOneParameterOverload : B
{
    protected override void FilterByLetter(char a)
    {
        // Add necessary code
    }
}