2

抽象クラスを持つアプリケーションに取り組んでいます。

私の抽象クラス = Werknemer サブクラス = Ober と Kok

フォームにこの行を追加するとエラーが発生しました

Kok a = new Kok();

「0を取るコンストラクタを含まない」

私は何か間違っていますか?

私の抽象クラス:

abstract class Werknemer
{

    public string Naam { get; private set; }
    public double FTE { get; private set; }
    public int WerknemersCode { get; private set; }
    public DateTime DatumIndienst { get; private set; }
    public string WerktBijRestaurant { get; private set; }
    public decimal FooiUitkering { get; private set; }

    public  Werknemer(string Naam, Adres Adres, double FTE, int WerknemersCode, DateTime DatumIndienst, string Res)
    {
        this.Naam = Naam;
        this.FTE = FTE;
        this.WerknemersCode = WerknemersCode;
        this.DatumIndienst = DatumIndienst;
        this.WerktBijRestaurant = Res;
    }
    public String AlsString()
    {
        return Naam;
    }

     public abstract String MaakSchoon();




}

私の他のサブクラス:

class Ober : Werknemer
{
    public bool AllRounder { get; private set; }
    public bool Bediening { get; private set; }
    public decimal Fooi { get; private set; }

    public Ober(string Naam, Adres Adres, double FTE, int WerknemersCode, DateTime DatumIndienst, string res): base(Naam, Adres, FTE, WerknemersCode, DatumIndienst, res)

    {
    //   this.AllRounder = AllRounder;
  //     this.Bediening = Bediening;
      //  this.FooienPot = FooienPot;
    }
    public String ToString()
    {
        return null;
    }
    public override String MaakSchoon()
    {
        return "Ober";
    }

その他のサブクラス

class Kok : Werknemer
{
    public bool Leadkok { get; private set; }
    public string Specialiteit { get; private set; }

    public Kok(string Naam, Adres Adres, double FTE, int WerknemersCode, DateTime DatumIndienst, string res) : base (
        Naam, Adres, FTE, WerknemersCode, DatumIndienst, res)
    {

    //    this.Leadkok = Leadkok;
     //   this.Specialiteit = Specialiteit;
    }
    public String ToString()
    {
        return null;
    }
   public override String MaakSchoon()
    {
        return "kok";            
    }
4

2 に答える 2

7

パラメーターを使用してコンストラクターを定義すると、デフォルトのコンストラクターが自動的に「非表示」になります。

つまり、明示的に定義する必要があります。

追加するだけ...

public Kok(){}  

そしてあなたは大丈夫なはずです。

基本クラスは、いくつかの「適切な」パラメーターを入力として想定しているため、手元にある場合にそれが何であるかを確認する必要があります。(@Muduによる改善)

于 2013-04-09T21:28:45.550 に答える
2

型にはパラメーターKokなしのコンストラクターがないため、インスタンス化するときに必要なパラメーターを渡すか、パラメーターなしのコンストラクターを追加する必要があります。

于 2013-04-09T21:29:52.013 に答える