Prefacio
Java es un lenguaje orientado a objetos. Todos los que han aprendido Java saben que la encapsulación, la herencia y el polimorfismo son las tres características de los objetos orientados. Cuando todos aprendieron la herencia, tendrían más o menos la impresión de que la herencia puede ayudarme a realizar la reutilización de clases. Por lo tanto, muchos desarrolladores usarán naturalmente la herencia de clase cuando necesiten reutilizar algún código, porque esto es lo que el libro está escrito (esto es lo que el maestro enseña). Sin embargo, en realidad está mal hacer esto. El uso de herencia a largo plazo a gran escala traerá altos costos de mantenimiento al código.
En realidad, cuando aprendí por primera vez a Java, nunca escuché sobre el término combinación, y el maestro nunca lo explicó. Siempre pensé que había perdido algunos puntos de conocimiento, pero no lo fue. El término combinación debe definirse como una cosa de pensamiento por el momento. Creo que los lectores han entrado en contacto con él, pero no sé si tiene este nombre.
De hecho, la llamada combinación es crear una nueva clase para llamar a una clase que ha sido creada y depurada, por lo que esta nueva clase puede llamarse una combinación
Por ejemplo, creo un pueblo
gente de clase pública {nombre de cadena privada; edad privada int; public void setName (nombre de cadena) {this.name = name; } public String getName () {return this.name; } public int getAge () {return this.age; } public void setAge (int Age) {this.age = edad; }} Entonces quiero usar esta clase ahora. Puedo agregar algunas características nuevas a esta clase. En este momento, podemos crear una nueva clase y luego crear el objeto de las personas en esta clase.
Por ejemplo, ahora estoy creando una clase llamada estudiante
Estudiante de clase {People People = New People ();} Luego puede agregar algunos atributos a esta clase, como definir una identidad como estudiante, que no discutiré aquí.
A continuación, echemos un vistazo a la herencia. De hecho, la herencia y la combinación son similares. Primero veamos cómo se hereda.
Hay una palabra clave llamada extiende en Java, que puede ayudarnos a heredar. Llamamos a la clase de clase heredada, la clase base, la clase base, la súper clase y los herederos están bien, y llamamos a la subclase del heredero o la clase derivada, etc.
Aquí definimos una clase
El estudiante de clase pública extiende a las personas {// dosomething} De esta manera, la clase hereda todos los métodos de miembros y variables miembros de la clase principal, pero tenga en cuenta que los campos o métodos declarados como permiso privado no serán heredados.
Para probar esto, escribimos un método en la clase de estudiantes
public String re () {return this.name;}Aquí el compilador informará un error "People.name no es visible". Desde aquí, podemos ver que los campos o métodos declarados como privados no pueden ser heredados. Si desea heredarlo, puede cambiar privado a protegido. De esta manera, podemos heredar el campo de nombre sin problemas.
De esta manera, inicializamos todos los campos en las personas, solo agregamos este bloque de código al código.
{this.age = 10; this.name = "zhangsan";}A continuación, declare a este estudiante en la función principal
Estudiante estudiantil = new Student (); System.out.println (student.getage ());
Ahora nos sorprendió descubrir que este método de escritura es factible. Aunque no declaramos ningún campo y método en la subclase, aún podemos llamar a getage (); y podemos imprimir 10 sin problemas
Esto se debe a que no sobrecargamos ningún método en la subclase, por lo que llamamos a la obtención de la clase principal, por lo que podemos acceder fácilmente a los campos declarados por la clase principal privada.
Después de leerlos, creo que todos tienen una comprensión preliminar de la herencia. Entonces, en el mecanismo de herencia, ¿cómo se llaman los métodos de construcción de cada clase? La respuesta es llamarlos en secuencia de la clase principal a la clase infantil.
Mientras demuestro, primero declaro tres clases TEMP1, TEMP2 y TEMP3. Al mismo tiempo, TEMP3 hereda de TEMP2, y TEMP2 hereda de Temp1. De esta manera, colocamos una declaración impresa en los métodos de construcción de cada clase.
//Temp1system.out.println("i'm temp1 "); // temp2system.out.println (" I'm temp2 "); // tempp3system.out.println (" soy tempp3 "); En aras de la conveniencia, escribí esto aquí, pero todos deben prestar atención al hecho de que estos se colocan en los métodos de construcción de cada categoría.
Creamos un objeto TEMP3 en la función principal
public class Mian {public static void main (String [] args) {tempp3 tempp3 = new Temp3 (); }}Miramos la consola y la imprimimos
Soy temp1i'M temp2i'm tempp3
A partir de esto, podemos ver que necesitamos crear el objeto de TEMP3 primero, encontrar la palabra clave extendida, luego seguir la cadena de herencia, encontrar temp2 y encontrar la palabra clave extendida, luego encontrar temp1, luego llame al constructor de temp1 y luego llame a uno por uno.
Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para su estudio o trabajo. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse.