Distinguindo polimorfismo dinâmico e estático em Java
Compreender a diferença entre polimorfismo dinâmico e estático é crucial na programação orientada a objetos com Java. Este artigo fornecerá uma explicação simplificada e um exemplo para elucidar esse conceito.
Polimorfismo Dinâmico vs. Estático
O polimorfismo permite que um único nome de método tenha múltiplas implementações dependendo do tipo de objeto chamando-o. Existem dois tipos principais de polimorfismo:
Sobrecarga de método
A sobrecarga de método é uma forma de polimorfismo estático onde múltiplos métodos com o mesmo nome existem na mesma classe, mas diferem em seus parâmetros. Ao chamar um método sobrecarregado, Java determina o método apropriado a ser invocado com base no número e tipos de argumentos passados.
Exemplo de código (sobrecarga de método):
class Calculation {
void sum(int a, int b) { System.out.println(a b); }
void sum(int a, int b, int c) { System.out.println(a b c); }
public static void main(String[] args) {
Calculation obj = new Calculation();
obj.sum(10, 10, 10); // Output: 30
obj.sum(20, 20); // Output: 40
}
}
Substituição de método
A substituição de método é uma forma de polimorfismo dinâmico onde métodos com o mesmo nome e assinatura são declarados em classes diferentes, mas compartilham uma classe pai comum. Ao chamar um método substituído, Java determina o método a ser invocado com base na classe real do objeto em tempo de execução.
Exemplo de código (substituição de método):
class Animal {
public void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
public class TestDog {
public static void main(String[] args) {
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move(); // Output: Animals can move
b.move(); // Output: Dogs can walk and run
}
}
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3