Distinguir polimorfismo dinámico y estático en Java
Comprender la diferencia entre polimorfismo dinámico y estático es crucial en la programación orientada a objetos con Java. Este artículo proporcionará una explicación simplificada y un ejemplo para dilucidar este concepto.
Polimorfismo dinámico versus estático
El polimorfismo permite que un solo nombre de método tenga múltiples implementaciones dependiendo de tipo de objeto que lo llama. Hay dos tipos principales de polimorfismo:
Sobrecarga de métodos
La sobrecarga de métodos es una forma de polimorfismo estático en el que múltiples Los métodos con el mismo nombre existen en la misma clase pero difieren en sus parámetros. Al llamar a un método sobrecargado, Java determina el método apropiado a invocar según el número y los tipos de argumentos pasados.
Ejemplo 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
}
}
Anulación de métodos
La anulación de métodos es una forma de polimorfismo dinámico donde los métodos con el mismo nombre y firma se declaran en diferentes clases pero comparten una clase principal común. Al llamar a un método anulado, Java determina el método a invocar en función de la clase real del objeto en tiempo de ejecución.
Ejemplo de código (anulación 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
}
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3