Ваш пример не содержит кода, поэтому он не корректный.
Что если мы напишем так:
class Vehicle {
public speedUp (int newSpeed) {
speed = newSpeed;
}
}
class Car extends Vehicle {
private boolean opened = false;
public void openDoor {
opened = true;
}
}
class Tank extends Vehicle {
private ammo = 10;
public void fire(Vehicle enemy) {
ammo -= 1;
}
}
Будет более явно видно, зачем нужно наследование. Теперь в классе Tank и в классе Car не нужно описывать отдельно одинаковые методы, так как они вынесены в общий суперкласс.
Класс - шаблон для объектов. Он определяет то, чем характеризуются объекты (поля) и то, как они себя ведут(методы). Внутри класса мы описываем его методы и поля, но для их использования нужно создать экземпляры класса - объекты.
Наследование применяют, чтобы избавиться от копирования кода. Если в двух классах есть что то общее(например, одинаковые методы), возможно, стоит сделать более общий класс, от которого наследуются два других.
TL;DR
В результате наследования получаем более простой и короткий код. В результате создания объектов получаем возможность оперировать данными объекта.
p.s. почитайте книгу какую нибудь, где будут описаны простые примеры инкапсуляции, полиморфизма и наследования. Например, "Head First Java". Или можете обратиться к мини-курсу от Oracle -
Oracle tutorial