Abstração Java
Classes e métodos abstratos
A abstração de dados é o processo de ocultar certos detalhes e mostrar apenas informações essenciais ao usuário.
A abstração pode ser alcançada com classes abstratas ou
interfaces (sobre as quais você aprenderá mais no próximo capítulo).
A abstract
palavra-chave é um modificador sem acesso, usado para classes e métodos:
- Classe abstrata: é uma classe restrita que não pode ser usada para criar objetos (para acessá-la, ela deve ser herdada de outra classe).
- Método abstrato: só pode ser usado em uma classe abstrata e não possui corpo. O corpo é fornecido pela subclasse (herdado de).
Uma classe abstrata pode ter métodos abstratos e regulares:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
A partir do exemplo acima, não é possível criar um objeto da classe Animal:
Animal myObj = new Animal(); // will generate an error
Para acessar a classe abstrata, ela deve ser herdada de outra classe. Vamos converter a classe Animal que usamos no capítulo Polimorfismo para uma classe abstrata:
Lembre-se do capítulo Herança que usamos a extends
palavra-chave para herdar de uma classe.
Exemplo
// 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 que e quando usar classes e métodos abstratos?
Para obter segurança - oculte certos detalhes e mostre apenas os detalhes importantes de um objeto.
Nota: A abstração também pode ser alcançada com Interfaces , sobre as quais você aprenderá mais no próximo capítulo.