Vamos a ver cómo funcionan las clases abstractas en Java.
Clases abstractas
Una clase abstracta es una clase que no se puede instanciar directamente. Es decir, no se puede crear un objeto de una clase abstracta. Las clases abstractas se utilizan para definir una estructura común que sirva como base para heredar.
Para hacer una clase abstracta, basta con usar la palabra clave abstract
antes de definir la clase.
Dado que Vehicle
en sí no es un objeto, sino la base para Car
y Truck
, haremos que sea una clase abstracta:
Con este cambio, si intentamos instanciar Vehicle
, nos saltará un error diciendo que, al ser una clase abstracta, no se puede instanciar.
Métodos abstractos
Un método abstracto es un método que no tiene implementación en una clase abstracta. La implementación del método abstracto se debe hacer en la subclase que lo herede, y no sea abstracta.
Si queremos tener un método para avanzar nuestro vehículo, pero que funcione de manera diferente en Car
o en Truck
, usaremos un método abstracto.
Aquí, Vehicle
tiene un método abstracto, y es obligatorio que las clases que lo hereden lo implementen.