Использование ключевого слова super при доступе к не переопределенным методам суперкласса
Я пытаюсь освоить наследование в Java и узнал, что при переопределении методов (и скрытии полей) в подклассах к ним все равно можно получить доступ из суперкласса с помощью 'супер' ключевое слово.
Что я хочу знать, так этосупер' ключевое слово будет использоваться для не переопределенных методов?
Есть ли разница (для не переопределенных методов / не скрытых полей)?
Мы собрали пример ниже.
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()
hasn»должно быть отменено, должноgetTotalTyreReplacementCost()
использованиеgetTyreCost()
или?super.getTyreCost()
Мне интересно, следует ли использовать super во всех случаях, когда к полям или методам суперкласса обращаются (чтобы показать в коде, что вы обращаетесь к суперклассу), или только в переопределенных / скрытых (чтобы они выделялись).