Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Classe Abstrata vs Interface | Interface
Java OOP
course content

Conteúdo do Curso

Java OOP

Java OOP

1. Como Trabalhar com IDE?
2. Poo
3. Interface

book
Classe Abstrata vs Interface

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 class ao declarar uma classe abstrata e interface ao declarar uma interface;

  • Palavra-chave de herança: extends para herdar de uma classe abstrata e implements para herdar de uma interface;

  • Nomes para subclasses: Uma subclasse de uma abstract class é chamada de subclasse ou classe herdada, enquanto uma subclasse de uma interface é chamada de classe - implementação;

  • Número de heranças: É possível herdar de apenas uma classe abstrata, enquanto é possível herdar de múltiplas interfaces;

  • Uma abstract class pode ter tanto métodos implementados quanto métodos abstratos. A partir do Java 8, interfaces também podem ter métodos default, que serão discutidos posteriormente 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, utiliza-se a palavra-chave extends e, 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 suas subclasses completarem. 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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

course content

Conteúdo do Curso

Java OOP

Java OOP

1. Como Trabalhar com IDE?
2. Poo
3. Interface

book
Classe Abstrata vs Interface

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 class ao declarar uma classe abstrata e interface ao declarar uma interface;

  • Palavra-chave de herança: extends para herdar de uma classe abstrata e implements para herdar de uma interface;

  • Nomes para subclasses: Uma subclasse de uma abstract class é chamada de subclasse ou classe herdada, enquanto uma subclasse de uma interface é chamada de classe - implementação;

  • Número de heranças: É possível herdar de apenas uma classe abstrata, enquanto é possível herdar de múltiplas interfaces;

  • Uma abstract class pode ter tanto métodos implementados quanto métodos abstratos. A partir do Java 8, interfaces também podem ter métodos default, que serão discutidos posteriormente 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, utiliza-se a palavra-chave extends e, 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 suas subclasses completarem. 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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3
some-alt