+0

Abstracción de clases en Java

Duration: 2m 7s



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:

package me.polvallverdu.course.vehicles;  
 
public abstract class Vehicle {  
 
    // ...
 
}

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.

package me.polvallverdu.course.vehicles;  
 
public abstract class Vehicle {  
 
    // ...
 
    public abstract void moveForward();
 
}

Aquí, Vehicle tiene un método abstracto, y es obligatorio que las clases que lo hereden lo implementen.

package me.polvallverdu.course.vehicles;  
 
public class Car extends Vehicle {  
 
    // ...
 
    @Override  
    public void moveForward() {  
        // Código para mover Car
    }  
}
package me.polvallverdu.course.vehicles;  
 
public class Truck extends Vehicle {  
 
    // ...
 
    @Override  
    public void moveForward() {  
        // Código para mover Truck  
    }  
 
}