0
我是C#的初学者,并试图继承自己的手。 ClassA是基类,classB和classC是从classA派生的。我的程序类有静态方法Show()。起初我不确定我是否会返回一个objectB或objectC。所以我不知道应该返回什么类型的方法Show()。将返回类型设置为基类,即classA首先解决了我的问题,但是当我尝试访问Main中的MyMethod时,它会抛出错误,因为MyMethod在classA中声明为抽象。我如何在返回的对象上调用MyMethod?从派生/基类的对象中调用抽象方法
abstract class classA
{
protected abstract void MyMethod();
// other fields and methods
}
class classB: classA
{
protected override MyMethod()
{
//logic
}
}
class classC: classA
{
protected override MyMethod()
{
//logic
}
}
class Program
{
public static classA Show()
{
if(condition)
{ //logic
return objectB; //objectB is instantiated from classB
}
else
{//logic
return objectC; //objectC is instantiated from classC
}
}
static void Main(string[] args)
{
ClassA myObject = Show();
myObject.MyMethod();
}
}
将MyMethod更改为public。 – Aron