linux-BR.org

Notícias de software livre e tecnologias

Dado o seguinte:
O que é impresso?Presumivelmente, o que está acontecendo é que, ao avaliar o pai.print (string), o tempo de execução agora encontra um método Parent :: Print (String) correspondente e depois vê que esse método é substituído pelo filho :: print (string).No entanto, para métodos estáticos, mesmo quando o tipo declarado da variável é criança, pai :: staticmethod é o que é chamado, devido ao método de impressão intermediário ().Responder:
O tipo de instância real é criança, e o tipo de argumento declarado é a string e, de fato, temos um método definido para criança :: print (string).O Java não suporta o Dispatch duplo e, portanto, ao lidar com os parâmetros do método, o que importa é o tipo “declarado” do parâmetro, não o tipo “real”.

Fonte: https://software.rajivprab.com/2019/08/14/nuances-of-overloading-and-overriding-in-java/