La diferencia entre sobrecarga, herencia, anulación y polimorfismo:
1) La herencia es cuando una subclase obtiene miembros de la clase principal.
2) La anulación es un método para reimplementar la clase principal después de la herencia.
3) La sobrecarga es una serie de métodos con diferentes parámetros y el mismo nombre en una clase.
4) El polimorfismo es para evitar una gran cantidad de sobrecargas en la clase principal, lo que hará que el código esté inflado y sea difícil de mantener.
Una declaración interesante que vi en Internet es: la herencia es un método para que una subclase use una clase principal, mientras que el polimorfismo es un método para que una clase principal use una subclase.
Los siguientes ejemplos incluyen estas cuatro implementaciones:
clase Triángulo extiende Forma {
público int getLados() {
devolver 3;
}
}
clase Rectángulo extiende Forma {
público int getLados(int i) {
devolver yo;
}
}
Forma de clase pública {
público booleano esSharp(){
devolver verdadero;
}
público int getLados(){
devolver 0;
}
public int getLados(Triángulo tri){
devolver 3;
}
public int getLados(rectangle rec){
devolver 4;
}
público estático vacío principal (String [] argumentos) {
Triángulo tri = nuevo Triángulo();
System.out.println(“¿El triángulo es un tipo de sostenido? ” + tri.isSharp());
Forma forma = nuevo Triángulo();
System.out.println(“Mi forma tiene” + shape.getSides() + “lados.”);
}
}
El rojo es sobrecarga, el verde sobrescribe, el azul es herencia, el rosa es polimorfismo
Tenga en cuenta que los métodos de la clase Triángulo se anulan, mientras que los métodos de la clase Rectángulo se sobrecargan.
Comparando las partes roja y rosa, puede encontrar las ventajas del polimorfismo sobre la sobrecarga: si usa la sobrecarga, debe sobrecargar un método para obtener el número de aristas en la clase principal para cada subclase; si usa polimorfismo, entonces La clase principal; Solo proporciona una interfaz para obtener el número de lados. En cuanto a obtener el número de lados de qué forma y cómo obtenerlo, se implementan (reescriben) en las subclases respectivamente.