Este artículo estudia principalmente contenido relacionado sobre sobrecarga, reescritura, polimorfismo, unión estática y unión dinámica en Java, de la siguiente manera.
Sobrecarga , el nombre en inglés es sobrecarga, lo que significa que más de un método con el mismo nombre se define en una clase. El número de parámetros, los tipos de parámetros y el orden de estos métodos no puede ser el mismo. El tipo de retorno puede ser el mismo o diferente.
public class tstaticoverload {static int height; tstaticoverload () {system.out.println ("plantando una plántula"); altura = 0;} tstaticoverload (int inicialHeight) {altura = inicialHeight; system.out.println ("creando un nuevo árbol que es" + "pies alto");} Información vítica statica () {System.out. altura + "pies alto");} Información vacía estática (String S) {System.out.println (S + ": el árbol es" + altura + "pies de altura");}} public class testso {public static void main (string [] args) {tstaticoverload t = new tstaticoverload (5); tstaticoverload.info (); tstaticoverload.info ("método de sobrecarga"); new tstaticOverload ();}}}}}}}Fuera: la creación de un árbol nuevo que tiene un árbol de sobrecarga de 5 pies de altura es un método de sobrecarga de 5 pies de altura: el árbol mide 5 pies de altura plantando una plántula
Reescribir, el nombre en inglés se anula, lo que significa que en el caso de la herencia, un método definido en la subclase que tiene el mismo nombre, el mismo tipo de retorno o el tipo compatible y los mismos parámetros que los métodos en la clase base se definen. Esto se llama la subclase reescribe el método de clase base. Este es un paso necesario para implementar el polimorfismo.
Polimorfismo: un polimorfismo es la capacidad del mismo comportamiento para tener múltiples manifestaciones o formas diferentes.
public class staticsupper {public static string staticget () {return "base staticget ()";} public String DynamicGet () {return "base dynamicGet ()";}} class Staticsub extiende staticsupper {pub static string staticget () {return "sub staticget ()";}} public string DynamicGet () {return "subynamic staticget () {return" sub staticget () ";}} public string DynamicGet () {return" Sub Dynamicet () "; StaticMub extiende STATICSUPPER {PUB STATIC String staticget () {return "mub staticget ()";} public string DynamicGet () {return "Mub DynamicGet ()";}} clase pública staticpolymorfismo {public static void main (string [] args) {staticsupper sup1 = new staticsub (); System.out.println (sup1.staticget ()); System.out.println (sup1.dynamicget ()); STISTICSUPPER sup2 = new staticMub (); System.out.println (sup2.staticget ()); System.out.println (sup2.dynamicget ()); }}Out: base staticget () subynamicGet () base staticget () mub Dynamyget ()
El concepto de vinculación del programa:
La unión se refiere a la asociación de una llamada de método con la clase (el cuerpo del método) donde se encuentra el método. Para Java, la unión se divide en unión estática y unión dinámica; o se llama vinculación temprana y vinculación tardía.
Aking estático:
El método se ha limitado antes de ejecutar el programa y es implementado por el compilador u otro programa de conexión. Por ejemplo: C.
Para Java, se puede entender como vinculante durante el período de compilación del programa; Aquí está particularmente claro que los únicos métodos en Java son los métodos finales, estáticos, privados y de constructor que son de unión temprana.
Enlace dinámico:
ANINACIÓN posterior: la unión dinámica se refiere al compilador sin saber qué método llamar durante la etapa de compilación hasta que el tiempo de ejecución esté vinculado de acuerdo con el tipo del objeto específico.
Si un lenguaje implementa la unión tardía, también debe proporcionar algunos mecanismos para determinar el tipo de objeto durante la operación y llamar a los métodos apropiados por separado. En otras palabras, el compilador todavía no conoce el tipo de objeto en este momento, pero el mecanismo de llamadas del método puede investigarlo por sí mismo y encontrar el cuerpo del método correcto. Diferentes idiomas tienen diferentes formas de implementar la vinculación tardía. Pero al menos podemos pensar de esta manera: todos necesitan instalar ciertos tipos especiales de información en el objeto.
La sobrecarga de métodos incluye sobrecarga de métodos estáticos y sobrecarga de métodos ordinarios. La sobrecarga de métodos estáticos es de unión estática, y la llamada del método es a través de: nombre de clase. método. La sobrecarga de métodos ordinarios es dinámica, y las llamadas de método son a través de: Referencia de objeto de instancia. método. El constructor se puede sobrecargar, pero no se puede reescribir.
Los métodos estáticos pueden reescribirse, pero no se logra ningún efecto polimórfico.
Resumir
Lo anterior se trata de la breve discusión de este artículo sobre la sobrecarga, la reescritura, el polimorfismo, la unión estática y la unión dinámica en Java. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!