Abstracción de Java
Clases abstractas y métodos
La abstracción de datos es el proceso de ocultar ciertos detalles y mostrar solo la información esencial al usuario.
La abstracción se puede lograr con clases abstractas o
interfaces (sobre las que aprenderá más en el próximo capítulo).
La abstract
palabra clave es un modificador de no acceso, utilizado para clases y métodos:
- Clase abstracta: es una clase restringida que no se puede usar para crear objetos (para acceder a ella, se debe heredar de otra clase).
- Método abstracto: solo se puede usar en una clase abstracta y no tiene cuerpo. El cuerpo lo proporciona la subclase (heredada de).
Una clase abstracta puede tener métodos abstractos y regulares:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
Del ejemplo anterior, no es posible crear un objeto de la clase Animal:
Animal myObj = new Animal(); // will generate an error
Para acceder a la clase abstracta, se debe heredar de otra clase. Convirtamos la clase Animal que usamos en el capítulo Polimorfismo en una clase abstracta:
Recuerde del capítulo Herencia que usamos la extends
palabra clave para heredar de una clase.
Ejemplo
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}
// Subclass (inherit from Animal)
class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
¿Por qué y cuándo usar clases y métodos abstractos?
Para lograr la seguridad, oculte ciertos detalles y solo muestre los detalles importantes de un objeto.
Nota: La abstracción también se puede lograr con Interfaces , sobre las que aprenderá más en el próximo capítulo.