Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में एब्स्ट्रैक्ट क्लासेस


C# में एक एब्स्ट्रैक्ट क्लास में एब्स्ट्रैक्ट और नॉन-एब्स्ट्रैक्ट दोनों मेथड्स शामिल होते हैं। एक क्लास को एब्स्ट्रैक्ट घोषित किया जाता है ताकि वह एब्स्ट्रैक्ट क्लास बन सके। आप एब्स्ट्रैक्ट क्लास को इंस्टेंटिएट नहीं कर सकते।

आइए एक उदाहरण देखें, जहाँ हमारे पास एक एब्स्ट्रैक्ट क्लास Vehicle और एब्स्ट्रैक्ट मेथड display() है:

public abstract class Vehicle
{
    public abstract void Display();
}

एब्स्ट्रैक्ट क्लास की डेराइव्ड क्लासेस हैं: Bus, Car, और Motorcycle। Bus डेराइव्ड क्लास का कार्यान्वयन निम्नलिखित है:

public class Bus : Vehicle
{
    public override void Display()
    {
        Console.WriteLine("Bus");
    }
}

पूर्ण उदाहरण

आइए C# में एब्स्ट्रैक्ट क्लासेस का पूरा उदाहरण देखें:

using System;

public abstract class Vehicle
{
    public abstract void Display();
}

public class Bus : Vehicle
{
    public override void Display()
    {
        Console.WriteLine("Bus");
    }
}

public class Car : Vehicle
{
    public override void Display()
    {
        Console.WriteLine("Car");
    }
}

public class Motorcycle : Vehicle
{
    public override void Display()
    {
        Console.WriteLine("Motorcycle");
    }
}

public class MyClass
{
    public static void Main()
    {
        Vehicle v;
        v = new Bus();
        v.Display();
        v = new Car();
        v.Display();
        v = new Motorcycle();
        v.Display();
    }
}

आउटपुट

Bus
Car
Motorcycle

एब्स्ट्रैक्ट क्लास बनाम इंटरफेस

विशेषताएब्स्ट्रैक्ट क्लासइंटरफेस
मल्टीपल इम्प्लीमेंटेशननहीं (सिंगल इनहेरिटेंस)हाँ
कंस्ट्रक्टरहाँनहीं
फील्ड्स/प्रॉपर्टीजहाँ (इंस्टेंस/स्टेटिक)केवल प्रॉपर्टीज (C# 8.0+)
एक्सेस मोडिफायर्ससभी अनुमतसभी पब्लिक (डिफ़ॉल्ट)
डिफ़ॉल्ट कार्यान्वयनहाँC# 8.0+ में डिफ़ॉल्ट मेथड्स

कब उपयोग करें

  • एब्स्ट्रैक्ट क्लास: जब बेस क्लास में साझा स्टेट/व्यवहार हो, "is-a" रिलेशनशिप हो
  • इंटरफेस: जब कॉन्ट्रैक्ट परिभाषित करना हो, मल्टीपल इम्प्लीमेंटेशन की आवश्यकता हो
  1. - Java में एब्स्ट्रैक्ट मेथड और क्लासेस

    हां। हम Java में एब्स्ट्रैक्ट मेथड/क्लासेस बहुत आसानी से बना सकते हैं। उदाहरण एक एब्स्ट्रैक्ट क्लास बनाने के लिए, क्लास डिक्लेरेशन में class कीवर्ड से पहले abstract कीवर्ड का उपयोग करें। /* File name : Employee.java */ public abstract class Employee { private String name; private String a

  1. - Java में Abstract Class

    अपनी घोषणा में abstract कीवर्ड वाली क्लास को abstract क्लास के रूप में जाना जाता है।Abstract क्लासेज में abstract मेथड्स हो भी सकते हैं और नहीं भी, यानी बिना बॉडी वाले मेथड्स (public void get();)लेकिन, यदि एक क्लास में कम से कम एक abstract मेथड है, तो क्लास को abstract घोषित किया जाना चाहिए।यदि एक क

  1. - Python में एब्स्ट्रैक्ट बेस क्लास (abc)

    एक क्लास को एब्स्ट्रैक्ट क्लास कहा जाता है यदि इसमें एक या अधिक एब्स्ट्रैक्ट मेथड होते हैं। एक एब्स्ट्रैक्ट मेथड एक ऐसा मेथड है जो घोषित है, लेकिन इसमें कोई कार्यान्वयन नहीं है। एब्स्ट्रैक्ट क्लास को इंस्टेंटिएट नहीं किया जा सकता है, और इसके एब्स्ट्रैक्ट मेथड को इसके सबक्लास द्वारा लागू किया जाना च