Eine Art Noob Frage, dies, aber ich kann es nicht herausfinden."override" Super-Klasse-Mitglied in der Unterklasse Java
Dies ist animal.java. Ich möchte, dass es eine Superklasse für alle Tierunterklassen ist. Es ist im selben Paket wie alle Unterklassen.
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);
}
}
Dies ist cow.java
class Cow extends Animal {
call = "moo";
}
Offenbar dies nicht ausgeführt. Aber ich möchte Cow.sound() ausführen und die Ausgabe "moo" lesen lassen. Ich möchte auch in der Lage sein, mehr Klassen zu erstellen, die den 'Aufruf' mit ihrer eigenen Zeichenfolge überschreiben. Was sollte ich stattdessen tun?
Verwenden Sie die Klassenvariable sofort nach Klassenname.Variable. Weil statische Methoden und Variablen nicht überschrieben werden können. Also, wenn Sie die Variable ändern möchten, müssen Sie Animal.call anrufen = –
Shriram
versuchen Sie etwas wie 'void sound (String Anruf) {-----}' – Uppicharla
Warum überschreiben Sie nicht einfach die Sound-Methode, anstatt zu versuchen um dein statisches Attribut neu zu definieren? – christophetd