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?
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?
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.
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.