Capítulo 6. Herencia

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Las clases de C# admiten la herencia, un popular mecanismo de reutilización de código orientado a objetos. Cuando escribes una clase, puedes especificar opcionalmente una clase base. Tu clase derivará de ésta, lo que significa que todo lo que haya en la clase base estará presente en tu clase, así como cualquier miembro que añadas.

Las clases y los tipos de registro basados en clases sólo admiten herencia simple (por lo que sólo puedes especificar una clase base). Las interfaces ofrecen una forma de herencia múltiple. Los tipos de valor, incluidos los tipos record struct, no admiten herencia en absoluto. Uno de los motivos es que los tipos de valor no suelen utilizarse por referencia, lo que elimina una de las principales ventajas de la herencia: el polimorfismo en tiempo de ejecución. La herencia no es necesariamente incompatible con el comportamiento de los tipos valor -algunos lenguajes lo consiguen-, pero a menudo presenta problemas. Por ejemplo, al asignar un valor de algún tipo derivado a una variable de su tipo base, se acaban perdiendo todos los campos que el tipo derivado añadía, un problema conocido como slicing. C# lo evita restringiendo la herencia a los tipos de referencia. Cuando asignas una variable de un tipo derivado a una variable de un tipo base, estás copiando una referencia, no el objeto en sí, por lo que el objeto permanece ...

Get Programación C# 12 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.