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

Dúvida no Ex. 5 da Aula 1 - Herança, reescrita e polimorfismo - Referência de Conta para ContaCorrente

Está correto o raciocínio abaixo?

"Compila e roda. Na declaração Conta cc = new ContaCorrente(); estou dizendo para o compilador armazenar a referência de um objeto ContaCorrente em uma variável do tipo Conta. Mas ContaCorrente É UMA Conta. Porém, se eu declarar uma chamada de método de ContaCorrente, o qual não existe em Conta, ocorrerá um erro de compilação, pois Conta não é uma ContaCorrente. O mesmo vale para ContaPoupanca."

3 respostas

Sim, está correto o raciocínio. Qual era sua dúvida exatamente?

Esta era a resposta de um exercício. Havia uma classe Conta e duas filhas ContaCorrente e ContaPoupanca que sobrescreviam alguns métodos. No entanto, a dúvida era se eu tivesse um método em ContaCorrente, por exemplo:

void imprime(){
    syso("Sou uma Conta Corrente");
}

e fizesse:

class Test{
    public static void main(String[] args){
        Conta c = new ContaCorrente();
        syso( c.imprime() );
}

Ocorre erro de compilação, certo!?

Abs e obrigado!

solução!

Exatamente. O método imprime só pode ser acessado por uma variável do tipo ContaCorrente, exatamente como você disse na sua pergunta.