- Autor
- Nome
- Nelson Silva
- Social
Introdução
O abstract
é um modificador em Java que é usado principalmente em contextos de programação orientada a objetos. Ele desempenha um papel crucial no desenvolvimento de sistemas modulares e flexíveis.
abstract
?
O que é o No Java, o abstract
é utilizado para indicar que:
- Uma classe não pode ser instanciada diretamente.
- Um método não tem corpo e deve ser implementado em uma subclasse.
abstract
?
Porque usar Classes e Métodos - Para Enfatizar o Design: Classes abstract são, muitas vezes, usadas para definir um modelo ou design para outras classes.
- Polimorfismo: Facilita o polimorfismo, uma vez que classes derivadas podem ter diferentes implementações dos métodos abstract.
- Evitar Criação Acidental de Objetos: Como classes abstract não podem ser instanciadas, elas evitam a criação acidental de objetos.
Diferença entre abstract e Interface
- Métodos e Variáveis: Enquanto uma interface só pode conter assinaturas de métodos, uma classe abstract pode conter tanto métodos completos quanto abstract.
- Variáveis de Estado: Classes abstract podem conter variáveis de estado, enquanto interfaces não.
- Herança Múltipla: Java não suporta herança múltipla de classes, mas permite que uma classe implemente múltiplas interfaces.
Exemplificando com Código
As classes e métodos abstract são usados quando uma base comum é necessária, mas não queremos que essa base seja instanciada:
package com.caffeinealgorithm.programaremjava;
import java.util.ArrayList;
import java.util.List;
public class Abstract {
public void Run() {
// ClasseX.informacaoX();
var classe = new ClasseY();
classe.informacaoY();
/*
País: Portugal
País: Brasil
País: Espanha
País: França
País: Itália
País: Austrália
País: Índia
*/
}
}
abstract class ClasseX {
public static String comunidade = "Caffeine Algorithm";
public static List<String> paises = new ArrayList<>();
public static void informacaoX() {
for (char carater : comunidade.toCharArray())
System.out.printf("Carater: %c\n", carater);
}
public abstract void informacaoY();
}
class ClasseY extends ClasseX {
public void informacaoY() {
paises.add("Portugal");
paises.add("Brasil");
paises.add("Espanha");
paises.add("França");
paises.add("Itália");
paises.add("Austrália");
paises.add("Índia");
for (String pais : paises)
System.out.printf("País: %s\n", pais);
}
}
Neste exemplo, ClasseX
é abstract, o que significa que não pode ser instanciada, mas ClasseY
(uma classe derivada) pode.
Conclusão
O modificador abstract
é uma ferramenta valiosa no arsenal de um desenvolvedor Java. Ele promove práticas sólidas de design, ajudando os desenvolvedores a criar sistemas mais robustos e manuteníveis.