如果类Example1和类示例2具有传递不同参数的subscribe方法,如何定义抽象方法?
abstract class Test
{
public int _a;
public abstract void Subscribe();
}
class Example1 : Test
{
public override void Subscribe(int x,int y,int z)
{
}
}
class Example2 : Test
{
public override void Subscribe(string a, bool b)
{
}
}
Run Code Online (Sandbox Code Playgroud)
简单.只需采用这种Subscribe方法Test
abstract class Test
{
public int _a;
}
Run Code Online (Sandbox Code Playgroud)
那些订阅方法是不同的方法.您需要以与想到具有不同名称的方法相同的方式来考虑它们,即使它们用于类似的目的.
如果它们的派生类是唯一的,那么首先你没有理由在基本方法中需要它们.
如果您需要确定在运行时Subscribe调用哪个Test,那么您可以使用is
if(abc is Example1)
{
((Example1)abc).Subscribe(a, b, c);
}
Run Code Online (Sandbox Code Playgroud)