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

Usando o metodo mais geral ao inves o metodo do Override

Se por algum motivo eu quiser usar o método geral, ao inves de, usar o metodo que usei com o @Override. Como eu faria isso na minha main?

3 respostas

Boa tarde Paulo,

Até onde eu sei isso não é possível. Quando fazemos o override de um método o original fica inacessível para a classe filha, afinal esse método foi reescrito para que tenha um comportamento diferente.

Mas se você realmente quiser que a sua classe filha tenha acesso ao método original você tem algumas alternativas.

Você poderia fazer a sobrecarga( mesmo método com parâmetros diferentes) desse método e reescreve-lo na classe filha. Não é um método muito bom, porquê você está duplicando código.

O ideal mesmo seria avaliar a modelagem das suas classes e verificar se a classe filha realmente precisa ter acesso ao método reescrito e o original. Se for este o caso acho que vale mais a pena criar uma interface.

Abraços

chama o super() da classe mãe caso herança. Interface é boa prática a sobrescrita, mas se não for um método default da interface, não existirá implementação no código.

solução!

Acho que não me expressei muito bem... O que eu quero dizer está um pouco mais claro nessa AULA.

Quando a gente faz algo do tipo:

ContaCorrente cc = new ContaCorrente(22, 33);

System.out.println(cc);

Um metodo toString() que está na class OBJECT retorna o seguinte valor:

br.com.bytebank.banco.modelo.ContaCorrente@3abfe836

Agora eu sobrescrevi esse método na minha classe CONTACORRENTE:

@Override 
public String toString() { 
    return "ContaCorrente: " + super.getNumero();
}

Agora quando eu uso o System.out.println(cc). O metodo to.String() da classe CONTACORRENTE retorna esse valor:

ContaCorrente: 33

Minha pergunta é: como eu faço em vez de retornar o valor que foi sobrescrito, obter o valor do metodo que está na classe OBJECT?

Ou Seja, eu consiga resgatar o valor,

br.com.bytebank.banco.modelo.ContaCorrente@3abfe836

do metodo sobrescrito.