Classe Abstrata vs Interface
Deslize para mostrar o menu
Qual Escolher
A partir dos capítulos anteriores, você pode ter notado que abstract classes e interfaces são bastante semelhantes. No entanto, existem diferenças entre elas. Indo direto ao ponto, pode-se dizer que, na prática, interfaces são frequentemente preferidas em relação às classes abstratas. Mas vamos entender por que isso acontece.
Qual é a Diferença
Para começar, precisamos compreender as diferenças entre uma classe abstrata e uma interface. Vamos analisar a lista:
- Sintaxe:
abstract classao declarar uma classe abstrata einterfaceao declarar uma interface; - Palavra-chave de herança:
extendspara herdar de uma classe abstrata eimplementspara herdar de uma interface; - Nomes para subclasses: Uma subclasse de uma
abstract classé chamada de subclasse ou classe que herda, enquanto uma subclasse de umainterfaceé chamada de classe - implementação; - Número de heranças: Você pode herdar de apenas uma classe abstrata, enquanto pode herdar de múltiplas interfaces;
- Uma
abstract classpode ter tanto métodos implementados quanto métodos abstratos. A partir do Java 8, interfaces também podem ter métodosdefault, que serão discutidos mais adiante nesta seção; - Métodos em uma classe abstrata podem ter qualquer modificador de acesso, enquanto, em interfaces, apenas o modificador de acesso
publicé permitido.
Nota
Também é possível herdar simultaneamente de uma classe abstrata e implementar uma interface. Primeiro, usamos a palavra-chave
extendse, em seguida,implements. A sintaxe fica assim:class ClassName extends AbstractClass implements Interface {}
De forma simples, pense em uma classe abstrata como uma classe que fornece alguma funcionalidade e impõe certas regras, mas deixa algumas partes para que suas subclasses completem. Uma interface, por outro lado, é como uma lista de requisitos que uma classe precisa cumprir, especificando quais métodos ela deve possuir, sem fornecer nenhum código real.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo