Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Classe abstrata com corpo

Nossa, como isso funciona? Achei que classes abstratas não podiam ter statements

abstract class D extends C {
    void x(int i) throws IOException {
        System.out.println("d");
    }
}
1 resposta
solução!

A sintaxe apresentada está correta e é válida em Java. Em classes abstratas, é possível incluir tanto métodos abstratos (sem implementação) quanto métodos concretos (com implementação). No exemplo fornecido, o método x(int i) é um método concreto, pois possui uma implementação definida.

Ao utilizar a palavra-chave abstract em uma classe, indica-se que a própria classe é abstrata, o que significa que não pode ser instanciada diretamente. No entanto, é permitido que uma classe abstrata contenha métodos concretos com implementações definidas.

A classe D estende a classe C e fornece uma implementação concreta para o método x(int i). Importante observar que, se a classe C também for abstrata e não fornecer uma implementação para o método x(int i), a classe D deve obrigatoriamente fornecer uma implementação concreta.

Em resumo, classes abstratas podem incluir tanto métodos abstratos (sem implementação) quanto métodos concretos (com implementação). Métodos abstratos devem ser implementados por subclasses concretas, enquanto métodos concretos podem ser herdados pelas subclasses.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software