Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

InputStream abstract

Olá. Desculpe a pergunta, mas como é que o java está permitindo a declaração do nome de um objeto como sendo do tipo InputStream, sedo que InputStream é uma classe abstract? É que no capítulo anterior, quando a classe Funcionario foi modificada para abstract, ela não ficou mais disponível. O que acontece mesmo? Obrigado desde já.

2 respostas
solução!

Oi Aluízio, tudo bem?

Quando você torna uma classe abstrata você não consegue mais instanciar um objeto daquele tipo mas nada impede que você declare uma variável daquele tipo. Neste caso você está utilizando o Polimorfismo.

Por exemplo, se você tiver as classes Funcionario (abstrata) e as classes Gerente e Diretor (ambas herdando de Funcionario), você consegue fazer o seguinte:

Funcionario f1 = new Gerente();
Funcionario f2 = new Diretor();

O que você não consegue fazer é:

Funcionario f3 = new Funcionario(); // não compila

Ficou mais claro?

Abraço!

Olá Joviane.Graças a você eu pude raciocinar com maior foco no tema e descobrir onde errei. Acontece que não modifiquei o acesso de Funcionário para ser público :

abstract class Funcionario{}

Erro feio... rsrs Muito obrigado pelos esclarecimentos. Abç