Monday 11 August 2014

Inheritance in C#

Inheritance:
One of the most important concepts in object-oriented programming is that of inheritance. Inheritance allows us to define a class in terms of another class, which makes it easier to create and maintain an application. This also provides an opportunity to reuse the code functionality and fast implementation time.
When creating a class, instead of writing completely new data members and member functions, the programmer can designate that the new class should inherit the members of an existing class. This existing class is called the base class, and the new class is referred to as the derived class.

Base and Derived Classes

A class can be derived from more than one class or interface, which means that it can inherit data and functions from multiple base class or interface.


<acess-specifier> class <base_class>
{
...
}
class <derived_class> : <base_class>
{
...
}


using System;
namespace InheritanceApplication
{
   class Shape
   {
      public void setWidth(int w)
      {
         width = w;
      }
      public void setHeight(int h)
      {
         height = h;
      }
      protected int width;
      protected int height;
   }

   // Derived class
   class Rectangle: Shape
   {
      public int getArea()
      {
         return (width * height);
      }
   }
  
   class RectangleTester
   {
      static void Main(string[] args)
      {
         Rectangle Rect = new Rectangle();

         Rect.setWidth(5);
         Rect.setHeight(7);

         // Print the area of the object.
         Console.WriteLine("Total area: {0}",  Rect.getArea());
         Console.ReadKey();
      }
   }
}


Multiple Inheritance in C#

C# does not support multiple inheritance. However, you can use interfaces to implement multiple inheritance. The following program demonstrates this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    class Program
    {
        static void Main(string[] args)
        {
     Call p = new Call ();
            p.caller();

           
        }

    }
}
  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Practice
{
    class Shape
    {
        //multiple inheritance is achived using interface in C#
        protected int height;
        protected int width;

        public void setheight(int h)
        {
            height = h;
        }
        public void setwidth(int w)
        {
            width = w;
        }

    }
    public interface paint
    {
         void getpaint();
    }
    class rectangle : Shape,paint
    {
        public int getArea()
        {
            return (width * height);
        }
       public void getpaint() {  }
    }

    class Call
    {
        public void caller()
        {
            rectangle r = new rectangle();
            r.setheight(5);
            r.setwidth(7);
            Console.WriteLine("the area is {0}",r.getArea());
            Console.ReadLine();

        }
    }

}

Output :
The area is  35

No comments:

Post a Comment