Verwendung des Schlüsselworts 'super' beim Zugriff auf nicht überschriebene Methoden der Oberklasse
Ich versuche, die Vererbung in Java in den Griff zu bekommen, und habe gelernt, dass beim Überschreiben von Methoden (und Ausblenden von Feldern) in Unterklassen mithilfe des Schlüsselworts 'super' weiterhin von der Superklasse aus auf sie zugegriffen werden kann.
Ich möchte wissen, ob das Schlüsselwort 'super' für nicht überschriebene Methoden verwendet werden soll.
Gibt es einen Unterschied (für nicht überschriebene Methoden / nicht ausgeblendete Felder)?
Ich habe unten ein Beispiel zusammengestellt.
public class Vehicle {
private int tyreCost;
public Vehicle(int tyreCost) {
this.tyreCost = tyreCost;
}
public int getTyreCost() {
return tyreCost;
}
}
und
public class Car extends Vehicle {
private int wheelCount;
public Vehicle(int tyreCost, int wheelCount) {
super(tyreCost);
this.wheelCount = wheelCount;
}
public int getTotalTyreReplacementCost() {
return getTyreCost() * wheelCount;
}
}
Vor diesem HintergrundgetTyreCost()
wurde nicht überschrieben, solltegetTotalTyreReplacementCost()
benutzengetTyreCost()
, odersuper.getTyreCost()
?
Ich frage mich, ob super in allen Fällen verwendet werden soll, in denen auf Felder oder Methoden der Superklasse zugegriffen wird (um im Code anzuzeigen, dass Sie auf die Superklasse zugreifen), oder nur in den überschriebenen / ausgeblendeten (damit sie hervorstechen).