Ich war durch eine Theorie gekommen, dass abstrakte Klassenmethoden keinen Methodenkörper haben, nur die Methodensignatur. Und obwohl eine Methode in einer Methodendeklaration kein abstraktes Schlüsselwort zugewiesen hat, wird sie in JVM automatisch in ein Abstrakt konvertiert.
Also, wie kommt es, dass diese eat() Methode einen Körper hat und wie kommt es, dass es in Swan Klasse nicht übersteuern kann.Haben abstrakte Klassenmethoden einen Körper oder nicht?
public abstract class Animal {
protected int age;
public void eat() {
System.out.println("Animal is eating");
}
public abstract String getName();
}
class Swan extends Animal {
public String getName() {
return "Swan";
}
}
" Ich war durch eine Theorie gekommen, dass abstrakte Klassenmethoden keinen Körper haben. "Wo hast du das gelesen? Wir würden gerne wissen, um diese Quelle zu vermeiden (oder vielleicht haben Sie es falsch verstanden, so dass wir versuchen könnten, es zu klären). Sie haben gerade Gegenbeispiel gepostet, das funktioniert so gut ... – Pshemo
@Phemo Diese Methode hat keinen Körper in der abstrakten Klasse, public abstract String getName(); –
Es gibt einen Unterschied zwischen einer "abstrakten Methode" und einer "Methode in einer abstrakten Klasse". Ihr Beispiel enthält beides. –