これは問題ではありませんが、私は理解できません。サブクラスjavaのスーパークラスメンバ "override"
これはanimal.javaです。私はそれをすべての動物のサブクラスのスーパークラスにしたい。すべてのサブクラスと同じパッケージに入っています。
public class Animal {
protected static String call = "Animals make noises, but do not have a default noise, so we're just printing this instead.";
public static void sound()
{
System.out.println(call);
}
}
この
は明らかに、これは実行されませんcow.javaclass Cow extends Animal {
call = "moo";
}
です。しかし、私はCow.sound()を実行して、出力に "moo"を読み込ませたいと思っています。私はまた、独自の文字列で '呼び出し'をオーバーライドするより多くのクラスを作成できるようにしたい。代わりに私は何をしなければなりませんか?
classname.variableでクラス変数をそのまま使用します。静的メソッドと変数はオーバーライドできないためです。だから、あなたが呼び出さなければならない変数を変更したいならば、Animal.call = –
Shriram
は 'void sound(String call){-----}'のように試してみてください – Uppicharla
単に試してみるのではなく、静的属性を再定義するには? – christophetd