是否可以在派生类或任何其他类中调用Abstract类的方法。我的代码在下面,我想在Program的Main方法中调用Abstr的Describe()方法。
可能吗?如果答案是肯定的,怎么办?

class Program
{
    public void Main()
    {
        //I want to call the Describe() method here, how do i do that
        Console.ReadLine();
    }
}

public abstract class Abstr
{
    public void Describe()
    {
        //do something
    }
}

最佳答案

由于您的方法不是静态的,因此需要从该抽象类中初始化一个变量,然后从中调用该方法。为此,您可以通过concreate类继承抽象类,然后调用该方法。请注意,无法初始化抽象类,引发类似Abstr abstr = new Abstr();的构造函数无效。所以:

public abstract class Abstr
{
    public void Describe()
    {
        //do something
    }
}

public class Concrete : Abstr
{
   /*Some other methods and properties..*/
}

class Program
{
    public void Main()
    {
        Abstr abstr = new Concrete();
        abstr.Describe();
        Console.ReadLine();
    }
}

关于c# - 是否可以在派生类或任何其他类中调用Abstract类的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6737590/

10-09 19:08