两个类继承一个抽象类

use*_*315 0 c# abstract

如果类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)

Sam*_*ica 5

简单.只需采用这种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)