none
Multi herencia en una clase RRS feed

  • Pregunta

  • Hola =) tengo una duda que parece ser tonta pero aun no lo entiendo del todo va asi

    entiendo que una clase puede heredar de otra todo sus mienbros y al implementar la clase base se podrian acceder a los miembros de la case heredada. desde alli todo bien si mi base  es correcta una clase no puede mas que heredar de una sola ¿y si quiero que una clase contenga los miembros de varias otras clases ? . alguien tiene un articulo en español preferiblemente con ejemplos?

    martes, 30 de junio de 2015 20:20

Respuestas

  • En C# solo existe herencia simple, es decir, una clase hija sólo puede heredar de una única clase madre. En otros lenguajes como C++ sí que se permite la herencia múltiple.

    Lo que puedes hacer en C# es usar herencia de Interfaz (en lugar de herencia de Clases). Esto sí que permite que una clase herede de múltiples interfases. El resultado es que la clase hija tiene acceso a todas las funciones definidas en todos los interfases. Pero a diferencia de la herencia de clases, con la herencia de interfaz sólo se hereda la declaración, pero no el comportamiento de las funciones heredadas.

    martes, 30 de junio de 2015 21:01
    Moderador

Todas las respuestas

  • ¿y si quiero que una clase contenga los miembros de varias otras clases ?

    no entiendo el planteo, si dices que sabes que solo hereda de una porque haces la pregunta?

    no existe herencia multiple en .net

    si podrias heredar en cascada usando

    public class A{
    
    }
    
    public class B : A {
    
    }
    
    public class C : B{
    
    }


    en este caso C tendra tambien lo que exponga A

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 30 de junio de 2015 20:25
  • vale pero queria saber si había alguna manera de simular una clase que de alguna forma vacia y que tiene miembros de  de otras clases  jejeje . aclaro pues tengo un dll que conecta con una bd mysql y por cada tabla existe una clase al querer usar x tabla de la db desde la capa de negocios implemento una clase llamada main que tiene instancias de estas clases y metodos que la usa el problema es que si creo un miembro nuevo en la clase x de la dll tambien debo hacerlo en la clase main 
    martes, 30 de junio de 2015 20:41
  • En C# solo existe herencia simple, es decir, una clase hija sólo puede heredar de una única clase madre. En otros lenguajes como C++ sí que se permite la herencia múltiple.

    Lo que puedes hacer en C# es usar herencia de Interfaz (en lugar de herencia de Clases). Esto sí que permite que una clase herede de múltiples interfases. El resultado es que la clase hija tiene acceso a todas las funciones definidas en todos los interfases. Pero a diferencia de la herencia de clases, con la herencia de interfaz sólo se hereda la declaración, pero no el comportamiento de las funciones heredadas.

    martes, 30 de junio de 2015 21:01
    Moderador