Hay mucho contenido en esta sección y el archivo de video supera los 4 M, por lo que el tiempo de descarga puede ser un poco más largo. ¡Espere un poco más! ¡
Hay mucho contenido en esta sección, porque hay mucho contenido! Solo en herencia, así que aprovecharé la oportunidad para usar todo lo anterior, lo cual se considera como una revisión. Algunas cosas en esta sección se explican una y otra vez dos o tres veces. dominarlos ¡Esto es lo más importante! ! Si no está seguro del contenido de la revisión en esta sección, lea los capítulos relevantes anteriores. !
A continuación hablamos de herencia. Para comprender la herencia, primero debemos saber por qué se necesita la herencia.
Supongamos que una clase que creamos para el sistema de noticias ya tiene conexión a la base de datos, inicialización y funciones como consulta, adición, eliminación, modificación, etc. .!
Entonces definitivamente tendremos que hacer algunas consultas, modificaciones, etc. diferentes. Por ejemplo, la columna de noticias y la administración de usuarios necesitan usar las clases que mencionamos anteriormente, pero la diferencia es que requieren resultados diferentes. ¿Qué hacer? Hay dos formas: una es crear clases para ellos por separado y copiar la clase de conexión de la base de datos dos veces. Creo que no es necesario mencionar las desventajas de esto. Luego, también podemos llamar con frecuencia a los miembros de la clase de la base de datos para lograr el objetivo. Si esto sucede, ¿no estaría nuestro código muy inflado? ¿Sabes por qué las pastillas para bajar de peso son tan populares?
Deprimido, ¿qué debo hacer? Simple, usamos la herencia para completarlo. Describamos brevemente la herencia. Es que la subclase (clase derivada) tiene todas las características de la clase principal (clase base) y al mismo tiempo tiene sus propias características. ¡Creo que esto debería dejarlo claro!
Nota: La herencia .Net solo permite la herencia directamente de otra clase y no puede heredar varias clases al mismo tiempo. Parece que solo puede haber un padre (en realidad, esto no es absoluto, jaja, es realmente interesante pensar en Microsoft. todavía podemos Use interfaces para implementar la herencia múltiple), pero la herencia multinivel es posible. Por ejemplo, puede haber un padre y un abuelo en la parte superior, y un hijo y un nieto en la parte inferior.
Echemos un vistazo a algo intuitivo:
Si miramos la imagen de arriba, encontraremos que los niveles inferiores son más específicos. Entonces podemos entender que humano es la clase base (clase principal) de todas las clases, y las siguientes son clases derivadas (subclases). De hecho, nuestras siguientes subcategorías se pueden ampliar hacia abajo.
En C#, una clase derivada hereda miembros de su clase base directa: métodos, campos, propiedades, eventos e indicadores de índice. Una clase derivada hereda implícitamente todos los miembros de la clase base directa excepto los constructores y destructores.
2. La herencia en C# cumple con las siguientes reglas:
(Este no es un resumen mío, me conecté a Internet y lo copié de otra persona. ¡¡Jaja!!)
1. La herencia es transitiva. Si C se deriva de B y B se deriva de A, entonces C no solo hereda los miembros declarados en B, sino que también hereda los miembros de A. La clase Objeto sirve como clase base para todas las clases.
2. Las clases derivadas deben ser extensiones de las clases base. Una clase derivada puede agregar nuevos miembros, pero no puede eliminar las definiciones de los miembros heredados.
3. Los constructores y destructores no se pueden heredar. Además, se pueden heredar otros miembros independientemente de los métodos de acceso definidos para ellos. La forma en que se accede a los miembros en la clase base solo puede determinar si las clases derivadas pueden acceder a ellos.
4. Si una clase derivada define un nuevo miembro con el mismo nombre que un miembro heredado, puede sobrescribir el miembro heredado. Pero esto no significa que la clase derivada haya eliminado estos miembros, es solo que ya no se puede acceder a estos miembros. (Cabe señalar que si un atributo o método tiene el mismo nombre pero una firma diferente, no se trata de una sobrescritura, sino de una sobrecarga).
5. Una clase puede definir métodos virtuales, atributos virtuales e indicadores de índice virtuales, y su derivación. Las clases pueden sobrecargar estos miembros para que las clases de implementación puedan exhibir polimorfismo.
6. Las clases derivadas solo pueden heredar de una clase y se puede lograr una herencia múltiple a través de interfaces.
En una subclase, podemos acceder a los miembros de la clase base a través de la palabra clave base:
llamar a métodos en la clase base que han sido anulados por otros métodos.
Especifica el constructor de la clase base que se debe llamar al crear una instancia de una clase derivada.
El acceso a la clase base solo es posible en constructores, métodos de instancia o descriptores de acceso a propiedades de instancia.
Es un error utilizar la palabra clave base de un método estático.
Revisando los modificadores de acceso
Los modificadores de acceso son palabras clave que especifican la accesibilidad de un miembro o tipo declarado. Hay cuatro modificadores de acceso en la herencia de clases: público protegido interno privado. Utilice estos modificadores de acceso para especificar los siguientes cinco niveles de accesibilidad: público protegido interno interno protegido privado.
Significado de accesibilidad declarado
El acceso público no tiene restricciones.
El acceso protegido está limitado a la clase contenedora o a los tipos derivados de la clase contenedora.
El acceso interno está limitado al proyecto actual.
El acceso interno protegido está limitado al elemento o tipo actual derivado de la clase contenedora.
el acceso privado está limitado al tipo que lo contiene.
Veamos un ejemplo a continuación, ciñámonos al tema de las personas.
¡Mira los comentarios de todos los códigos!