无法创建抽象类或接口的实例

ghi*_*hie 2 c# abstract-class

我对使用不熟悉abstract class.

我试图调用一个abstract class并得到这个错误Cannot create an instance of the abstract class or interface,我已经研究了这个错误,但我真的很困惑.

这是我的代码:

        string B1String;
        while ((B1String = OasisFile.ReadLine()) != null)
        {
          Questions_Base oQuestions_Base = new Questions_Base(); // error here
          oQuestions_Base.Import(B1String);
        }
Run Code Online (Sandbox Code Playgroud)

请指教我...谢谢!

Eri*_* J. 8

抽象类的目的是作为类层次结构的一部分,其中更多派生类共享一些常见的实现.

如果你有一个飞行模拟器,你可以定义一个抽象类ThingsThatFly来实现一些属性(空中速度,高度,航向)和方法(TakeOff(),Land())所有飞行物具有共同点,但是会被声明为抽象的,因为ThingsThatFly是所有飞行的具体事物的抽象.你当然也可以在中间有类,例如Cessna172可以从Airplane继承中继承ThingsThatFly.如果所有飞机都有一些常见的实施例如鸟类没有(例如,剩余燃料),那么你会这样做.

然后你会有一些具体(=现实生活)的东西像塞斯纳172,航天飞机和鸭子一样飞翔.其中每一个都是源自的具体类ThingsThatFly

这与具体类实现接口的不同之处IThingsThatFly在于,抽象类不仅提供了期望的属性和方法的定义,而且还提供了这些属性和方法的(希望有用的)实现.