Ваш метод setCapacity()
класса Car
не переопределяет метод setCapacity(int newCapacity)
класса Vehicle
.
Чтобы переопределить метод базового класса, подчиненныйМетод класса должен иметь одинаковую подпись.
Изменить
public void setCapacity()
{
System.out.println("Cannot change capacity of a car");
}
на
@Override
public void setCapacity(int newCapacity)
{
System.out.println("Cannot change capacity of a car");
}
Обратите внимание, что добавление атрибута @Override
необязательно, но оно сообщиткомпилятор, который вы намеревались переопределить метод базового класса (или реализовать метод интерфейса), что приведет к полезной ошибке компиляции, если вы неправильно объявили метод переопределения.