Já no caso de subscrição de métodos o método chamado seria referente ao tipo do objeto.
Ex:
classA{
voidf(){
System.out.println(“A”);
}}
classBextendsA{voidf(){System.out.println(“B”);//método subscrito e não sobrecarregado}publicstaticvoidmain(Stringargs[]){Aa=newB();a.f();}}
saída será B.
Caso eu tenhafalado besteira, peço que me corrijam.
analyser
Desculpe acho que falei besteria, bem pelo o que vi no Código não deveria dar AAA se der gostaria de saber o motivo tambem
Abraços
R
RafaelVS
Acho que o Marcos disse tudo. Como não há sobrescrita, não acontece como com polimorfismo e o método chamado é aquele do tipo da variável. Pelo mesmo motivo, o exemplo que o marcos deu vai exibir “BB”. Se os métodos m1 das classes B e C recebessem um parametro do tipo A, aí sim a saída seria “ABC”, pois estaria ocorrendo sobrescrita dos métodos e, através de polimorfismo, os métodos dos objetos é que seriam chamados (ao invés dos métodos do tipo da variável).