Introduction

ููŠ ุงู„ู…ู‚ุงู„ ุฏู‡ุŒ ู‡ุชูƒู„ู… ุนู† ุฃู†ูˆุงุน ุงู„ู€ Inheritance ููŠ C# ุจุงู„ุฃู…ุซู„ุฉ. ูŠุง ุฑูŠุช ุชู‚ุฑุง ู…ู‚ุงู„ู†ุง ุงู„ู„ูŠ ูุงุชุŒ ูˆุงู„ู„ูŠ ุดุฑุญู†ุง ููŠู‡ ุงู„ู…ูุงู‡ูŠู… ุงู„ุฃุณุงุณูŠุฉ ู„ู„ู€ Inheritance ููŠ ู„ุบุฉ C# ุจุงู„ุฃู…ุซู„ุฉ.

Types of Inheritance in C#

ุฃู†ูˆุงุน ุงู„ู€ Inheritance ุฏูŠ ุจุชูˆุถุญ ู„ู†ุง ุนุฏุฏ ุงู„ู€ parent classes ุงู„ู„ูŠ ุงู„ู€ child class ุจูŠู…ุชู„ูƒู‡ุงุŒ ุฃูˆ ุนุฏุฏ ุงู„ู€ child classes ุงู„ู„ูŠ ุงู„ู€ parent class ุจูŠู…ุชู„ูƒู‡ุง.

ุญุณุจ ู„ุบุฉ C++ุŒ ูˆู„ูŠู‡ ุฃู†ุง ุจุชูƒู„ู… ุนู† C++ ู‡ูˆ ู„ุฅู† ุงู„ู€ Object-Oriented Programming ุธู‡ุฑ ุฃุตู„ู‹ุง ู…ู†ู‡ุงุŒ ููŠู‡ ุฎู…ุณ ุฃู†ูˆุงุน ู…ุฎุชู„ูุฉ ู…ู† ุงู„ู€ Inheritances:

  • Single Inheritance
  • Multi-Level Inheritance
  • Hierarchical Inheritance
  • Hybrid Inheritance
  • Multiple Inheritance

Single Inheritance

ู„ู…ุง class ุจูŠูˆุฑุซ ู…ู† base class ูˆุงุญุฏ ุจุณุŒ ุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ single inheritance.

ุฒูŠ ู…ุง ุดุงูŠู ููŠ ุงู„ุตูˆุฑุฉุŒ ู„ูˆ ุนู†ุฏู†ุง class ุงุณู…ู‡ A ูˆู‡ูˆ ุงู„ู€ Parent classุŒ ูˆclass ุชุงู†ูŠ ุงุณู…ู‡ B ูˆู‡ูˆ ุงู„ู€ Child classุŒ ูˆclass B ุจูŠูˆุฑุซ ู…ู† class A. ุฏู‡ ู…ุนู†ุงู‡ ุฅู† Class B ุนู†ุฏู‡ parent class ูˆุงุญุฏ ุจุณ ุงู„ู„ูŠ ู‡ูˆ class A. ุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ Single Inheritance.

Multilevel Inheritance

ู„ู…ุง derived class ุจูŠุชู… ุฅู†ุดุงุคู‡ ู…ู† derived class ุชุงู†ูŠุŒ ุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ Multilevel Inheritance.

ู„ูˆ ููŠู‡ class ุงุณู…ู‡ AุŒ ูˆู…ู† class A ุจูŠูˆุฑุซ class BุŒ ูˆู…ู† class B ุจูŠูˆุฑุซ class CุŒ ูุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ Multilevel Inheritance.

Hierarchical Inheritance

ู„ู…ุง ุฃูƒุชุฑ ู…ู† derived class ุจูŠุชู… ุฅู†ุดุงุคู‡ู… ู…ู† base class ูˆุงุญุฏุŒ ุงู„ู†ูˆุน ุฏู‡ ุจูŠุชุณู…ู‰ Hierarchical inheritance.

ู„ูˆ ุนู†ุฏูƒ class ุงุณู…ู‡ AุŒ ูˆู…ู† ุงู„ู€ class ุฏู‡ ุจูŠูˆุฑุซ ุฃูƒุชุฑ ู…ู† class ุชุงู†ูŠุŒ ูŠุนู†ูŠ class B ุจูŠูˆุฑุซ ู…ู†ู‡ุŒ ูˆclass C ุจูŠูˆุฑุซ ู…ู†ู‡ุŒ ูˆูƒู…ุงู† class D ุจูŠูˆุฑุซ ู…ู†ู‡. ู„ู…ุง ูŠูƒูˆู† ููŠู‡ ุฃูƒุชุฑ ู…ู† child class ุจูŠูˆุฑุซูˆุง ู…ู† Single Base Class ูˆุงุญุฏุŒ ุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ Hierarchical Inheritance.

Multiple Inheritance

ู„ู…ุง derived class ุจูŠุชู… ุฅู†ุดุงุคู‡ ู…ู† ุฃูƒุชุฑ ู…ู† base class ูˆุงุญุฏุŒ ุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ multiple inheritance.

ู„ูˆ ููŠู‡ classes ุฒูŠ A ูˆBุŒ ูˆู…ู† ุงู„ุงุชู†ูŠู† ุฏูˆู„ ุจูŠูˆุฑุซ class CุŒ ูุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉ ุจูŠุชุณู…ู‰ Multiple Inheritance. ูŠุนู†ูŠ ู„ู…ุง class ูˆุงุญุฏ ูŠูƒูˆู† ุนู†ุฏู‡ ุฃูƒุชุฑ ู…ู† parent class.

Hybrid Inheritance

ุงู„ู€ Hybrid Inheritance ู‡ูˆ ู…ุฒูŠุฌ ู…ู† ุฃูŠ ู†ูˆุน ู…ู† ุงู„ู€ Single, Hierarchical, ูˆ Multilevel inheritances.

ู„ูˆ ููŠู‡ ุงุชู†ูŠู† subclasses ุฒูŠ B ูˆC ุจูŠูˆุฑุซูˆุง ู…ู† class A (ูˆุฏู‡ Hierarchical inheritance). ูˆุจุนุฏูŠู† ู…ู† B ูˆCุŒ ููŠู‡ class ุชุงู†ูŠ ุงุณู…ู‡ D ุจูŠูˆุฑุซ ู…ู†ู‡ู… ู‡ู…ุง ุงู„ุงุชู†ูŠู†.

ุฏู‡ ูŠุนุชุจุฑ ู…ุฒูŠุฌ ู…ู† hierarchical inheritance ู…ู† ููˆู‚ุŒ ูˆ multiple inheritance ู…ู† ุชุญุช (D ุจูŠูˆุฑุซ ู…ู† B ูˆC). ูƒู…ุงู†ุŒ ู…ู† A ู„ู€ B ูˆู…ู† B ู„ู€ D (ู„ูˆ ุงูุชุฑุถู†ุง ุงู„ุชุณู„ุณู„ ุฏู‡)ุŒ ุฏู‡ ูŠุนุชุจุฑ Multi-level Inheritance. ููŠ ุงู„ู†ูˆุน ุฏู‡ ู…ู† ุงู„ูˆุฑุงุซุฉุŒ ุงู„ุฎุตุงุฆุต ุจุชุงุนุฉ base class A ุจุชุธู‡ุฑ ููŠ class D ุนู† ุทุฑูŠู‚ class B ูˆ class C.

ุงู„ุชุตู†ูŠู ุงู„ู„ูŠ ูุงุช ุฏู‡ ู…ุจู†ูŠ ุนู„ู‰ C++.

Types of Inheritances in C#

ู„ูˆ ุจุตูŠุช ุนู„ู‰ Single, Multilevel, ูˆ HierarchicalุŒ ู‡ุชู„ุงู‚ูŠู‡ู… ุดุจู‡ ุจุนุถ ุฌุฏู‹ุง. ููŠ ุฃูŠ ู„ุญุธุฉุŒ ุจูŠูƒูˆู† ู„ูŠู‡ู… immediate parent class (ุฃุจ ู…ุจุงุดุฑ) ูˆุงุญุฏ ุจุณ.

ู„ูƒู† ู„ูˆ ุจุตูŠุช ุนู„ู‰ Multiple ูˆ HybridุŒ ุจูŠูƒูˆู† ู„ูŠู‡ู… ุฃูƒุชุฑ ู…ู† immediate parent class ูˆุงุญุฏ ู„ู„ู€ child class.

ุนุดุงู† ูƒุฏู‡ุŒ ู†ู‚ุฏุฑ ู†ุตู†ู ุงู„ุฎู…ุณ ูุฆุงุช ุงู„ู„ูŠ ููˆู‚ ุฏูŠ ุจุดูƒู„ ุฃูˆุณุน ู„ู†ูˆุนูŠู† ุฃุณุงุณูŠูŠู† ุจู†ุงุกู‹ ุนู„ู‰ ุนุฏุฏ ุงู„ู€ immediate parent class ูƒุงู„ุชุงู„ูŠ:

  1. Single Inheritance (ุจูŠุดู…ู„ Single, Multilevel, ูˆ Hierarchical)
  2. Multiple Inheritance (ุจูŠุดู…ู„ Multiple ูˆ Hybrid)

Single Inheritance in C#

ู„ูˆ ุฃูŠ class ุนู†ุฏู‡ immediate parent class ูˆุงุญุฏ ุจุณุŒ ุจู†ุณู…ูŠู‡ Single Inheritance ููŠ C#.

ู…ุซู„ุงู‹ุŒ ูƒุงู… immediate parent class ุนู†ุฏ CุŸ ูˆุงุญุฏ ุจุณ ูˆู‡ูˆ B. ูˆูƒุงู… immediate parent class ุนู†ุฏ BุŸ ูˆุงุญุฏ ุจุณ ูˆู‡ูˆ A.

Multiple Inheritance in C#

ู„ูˆ class ุนู†ุฏู‡ ุฃูƒุชุฑ ู…ู† immediate parent class ูˆุงุญุฏุŒ ุจู†ุณู…ูŠู‡ Multiple Inheritance ููŠ C#.

ู…ุซู„ุงู‹ุŒ class C ุนู†ุฏู‡ ุฃูƒุชุฑ ู…ู† immediate parent class ูˆุงุญุฏ ุงู„ู„ูŠ ู‡ู…ุง A ูˆ BุŒ ูˆุจุงู„ุชุงู„ูŠ ุฏู‡ Multiple Inheritance.

ูุงู„ู†ู‚ุทุฉ ุงู„ู„ูŠ ู„ุงุฒู… ุชูุชูƒุฑู‡ุง ู‡ูŠ ุนุฏุฏ ุงู„ู€ immediate Parent classes ุงู„ู„ูŠ ุงู„ู€ child class ุจูŠู…ุชู„ูƒู‡ุง. ู„ูˆ ูˆุงุญุฏุŒ ูŠุจู‚ู‰ Single Inheritance. ู„ูˆ ุฃูƒุชุฑ ู…ู† ูˆุงุญุฏุŒ ูŠุจู‚ู‰ multiple inheritance.

Example to Understand Single Inheritance in C#

using System;
namespace InheritanceDemo
{
    public class Program
    {
        static void Main()
        {
            // Creating object of Child class and
            // invoke the methods of Parent and Child classes
            Cuboid obj =  new Cuboid(2, 4, 6);
            Console.WriteLine($"Volume is : {obj.Volume()}");
            Console.WriteLine($"Area is : {obj.Area()}");
            Console.WriteLine($"Perimeter is : {obj.Perimeter()}");
            Console.ReadKey();
        }
    }
    // Parent class
    public class Rectangle
    {
        public int length;
        public int breadth;
        public int Area()
        {
            return length * breadth;
        }
        public int Perimeter()
        {
            return 2 * (length + breadth);
        }
    }
    
    // Child Class
    class Cuboid : Rectangle
    {
        public int height;
        public Cuboid(int l, int b, int h)
        {
            length = l;
            breadth = b;
            height = h;
        }
        public int Volume()
        {
            return length * breadth * height;
        }
    }
}

Output:

Volume is : 48
Area is : 8
Perimeter is : 12

Example to Understand Multiple Inheritance in C#

using System;
namespace InheritanceDemo
{
    public class Program
    {
        static void Main()
        {
            // Creating object of Child class and
            // invoke the methods of Parent classes and Child class
            SmartPhone obj = new SmartPhone(); ;
            obj.GetPhoneModel();
            obj.GetCameraDetails();
            obj.GetDetails();
            Console.ReadKey();
        }
    }
    // Parent Class 1
    class Phone
    {
        public void GetPhoneModel()
        {
            Console.WriteLine("Redmi Note 5 Pro");
        }
    }
    // Parent class 2
    class Camera
    {
        public void GetCameraDetails()
        {
            Console.WriteLine("24 Mega Pixel Camera");
        }
    }
    // Child Class derived from more than one Parent class
    class SmartPhone : Phone, Camera
    {
        public void GetDetails()
        {
            Console.WriteLine("Its a RedMi Smart Phone");
        }
    }
}

Output: ุงู„ู€ Output: ู‡ูŠุญุตู„ Compile Time Error.

ู…ู„ุงุญุธุฉ: ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ุชุนู‚ูŠุฏ ุงู„ู„ูŠ ุจูŠุญุตู„ ุจุณุจุจ ุงู„ู€ multiple inheritance ุตุนุจ ุฌุฏู‹ุง. ุนุดุงู† ูƒุฏู‡ุŒ ู‡ูˆ ู…ุด ู…ุฏุนูˆู… ููŠ .NET ู…ุน ุงู„ู€ class ูˆู…ู…ูƒู† ูŠุชุนู…ู„ ุจุงู„ู€ interfaces. ู‡ู†ุชูƒู„ู… ุนู† ุงู„ู…ูู‡ูˆู… ุฏู‡ ุจุงู„ุชูุตูŠู„ ููŠ ู…ู‚ุงู„ุงุชู†ุง ุนู† ุงู„ู€ Multiple Inheritance.

Classification of Inheritance in C#

ุงู„ู€ C#.NET ุตู†ู‘ู ุงู„ู€ inheritance ู„ูุฆุชูŠู†ุŒ ูˆู‡ู…ุง:

  1. Implementation inheritance: ู„ู…ุง class ุจูŠูˆุฑุซ ู…ู† class ุชุงู†ูŠุŒ ุฏู‡ ุจูŠุชุณู…ู‰ implementation inheritance.
  2. Interface inheritance: ู„ู…ุง class ุจูŠูˆุฑุซ ู…ู† interfaceุŒ ุฏู‡ ุจูŠุชุณู…ู‰ interface inheritance.