スーパークラスとサブクラスのためのパラメータを渡しますか?

ICEFIRE_16:

値は、私が渡すことになっています:

  • 名前や家族がすべての楽器のために保存する必要があります
  • 私たちは、弦の楽器は弓を使用するかどうかを指定する必要があります

私は私のコードを実行すると、それは私にエラーを与える:「クラス文字列でコンストラクタ文字列を指定したタイプに適用することはできません。」

public class InstrumentTester
{
    public static void main(String[] args)
    {
        /**
         * Don't Change This Tester Class!
         * 
         * When you are finished, this should run without error.
         */ 
        Wind tuba = new Wind("Tuba", "Brass", false);
        Wind clarinet = new Wind("Clarinet", "Woodwind", true);

        Strings violin = new Strings("Violin", true);
        Strings harp = new Strings("Harp", false);

        System.out.println(tuba);
        System.out.println(clarinet);

        System.out.println(violin);
        System.out.println(harp);
    }
}

public class Instrument
{
    private String name;
    private String family;

    public Instrument(String name, String family)
    {
        this.name = name;
        this.family = family;
    }

    public String getName()
    {
        return name;
    }

    public String getFamily()
    {
        return family;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public void setFamily(String family)
    {
        this.family = family;
    }
}

public class Strings extends Instrument
{
    private boolean useBow;

    public Strings(String name, String family, boolean useBow)
    {
        super(name, family);
        this.useBow = useBow;
    }


    public boolean getUseBow()
    {
        return useBow;
    }

    public void setUseBow(boolean useBow)
    {
        this.useBow = useBow;
    }
}

それはそれを取るしていない場合はどうすれば、パラメータの家族に渡すのですか?

ジョンKugelman:
Strings violin = new Strings("Violin", true);
Strings harp = new Strings("Harp", false);

彼らが作成しているときにバイオリンやハープは、家族の名前が渡されませんStringsコンストラクタは、引数として1を期待してはいけません。

public Strings(String name, boolean useBow)

あなたはに何を渡すかsuper()、その後、?すべての文字列が同じファミリーに属しているなら、あなたはハード値をコーディングすることができます。おそらく、単に「文字列」:

public Strings(String name, boolean useBow)
{
    super(name, "String");
    this.useBow = useBow;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=339226&siteId=1