Skip to content

Class with Multiple Inheritance

Example

Let's Assume we want to inherit Class1 and Class2 to Class3 so we can use Method1 and Method2.

C# Don't allow multiple inheritance so we need to implement separate Interfaces to get access to Class1 and Class2

classDiagram

class Class1{
+Method1() void
}

class Class2{
+Method2() void
}

class Class3{
+Method3() void
}

Class1 <|--Class3
Class2 <|--Class3

Code

using System;

namespace ConsoleAppTest
{
    internal static class Program
    {
        private static void Main()
        {
            try
            {
                var c3 = new Class3();
                c3.Method1();
                c3.Method2();
                c3.Method3();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.ReadLine();
            }
        }
    }

    internal interface IClass1
    {
        void Method1();
    }

    internal class Class1 : IClass1
    {
        public void Method1()
        {
            Console.WriteLine("This is Method1");
        }
    }

    internal interface IClass2
    {
        void Method2();
    }

    internal class Class2 : IClass2
    {
        public void Method2()
        {
            Console.WriteLine("This is Method2");
        }
    }

    internal class Class3:IClass1,IClass2
    {
        private readonly Class1 c1 = new Class1();
        private readonly Class2 c2 = new Class2();
        public void Method1()
        {
            c1.Method1();
        }

        public void Method2()
        {
            c2.Method2();
        }

        public void Method3()
        {
            Console.WriteLine("This is Method3");
        }
    }
}