Использование ключевого слова super при доступе к не переопределенным методам суперкласса
Я пытаюсь освоить наследование в Java и узнал, что при переопределении методов (и скрытии полей) в подклассах к ним по-прежнему можно получить доступ из суперкласса с помощью «super». ключевое слово.
Что я хочу знать, так это то, что «супер» ключевое слово будет использоваться для не переопределенных методов?
Есть ли разница (для не переопределенных методов / не скрытых полей)?
Я собрал пример ниже.
public class Vehicle {
private int tyreCost;
public Vehicle(int tyreCost) {
this.tyreCost = tyreCost;
}
public int getTyreCost() {
return tyreCost;
}
}
а также
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;
}
}
В частности, учитывая, чтоgetTyreCost()
не был переопределен, долженgetTotalTyreReplacementCost()
использованиеgetTyreCost()
, или жеsuper.getTyreCost()
?
Мне интересно, следует ли использовать super во всех случаях, когда к полям или методам суперкласса обращаются (чтобы показать в коде, к которому вы обращаетесь к суперклассу), или только в переопределенных / скрытых (чтобы они выделялись).