我有一个父类,它包含两个采用不同参数的同名方法:
protected abstract void FilterByLetter(char a);
protected abstract void FilterByLetter(char a, char b);
在实践中,只需要在从它继承的每个类中使用其中一个。有没有办法让一个人在没有另一个人的情况下被覆盖?
答案 0 :(得分:3)
创建两个新的抽象基类,只覆盖其中一个方法并从中继承子项:
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
}
}