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

Java में इंटरफेस में कंस्ट्रक्टर क्यों नहीं होता जबकि एब्सट्रैक्ट क्लास में होता है?


एक कंस्ट्रक्टर किसी विशेष क्लास के नॉन-स्टैटिक मेंबर्स को एक ऑब्जेक्ट के संबंध में इनिशियलाइज़ करने के लिए होता है।

इंटरफेस में कंस्ट्रक्टर

  • Java में एक इंटरफेस में कंस्ट्रक्टर नहीं होता क्योंकि इंटरफेस में सभी डेटा मेंबर्स डिफ़ॉल्ट रूप से public static final होते हैं, वे कॉन्स्टेंट्स हैं (घोषणा के समय मान असाइन करें)।
  • इंटरफेस में इनिशियलाइज़ करने के लिए कोई डेटा मेंबर्स नहीं होते।
  • किसी मेथड को कॉल करने के लिए हमें एक ऑब्जेक्ट की आवश्यकता होती है, चूंकि इंटरफेस में मेथड्स की बॉडी नहीं होती, इसलिए इंटरफेस में मेथड्स को कॉल करने की कोई आवश्यकता नहीं होती।
  • चूंकि हम इंटरफेस में मेथड्स को कॉल नहीं कर सकते, इसलिए इंटरफेस के लिए ऑब्जेक्ट बनाने की कोई आवश्यकता नहीं है और इसमें कंस्ट्रक्टर होने की कोई आवश्यकता नहीं है।

उदाहरण 1

interface Addition {
    int add(int i, int j);
}
public class Test implements Addition {
    public int add(int i, int j) {
        int k = i+j;
        return k;
    }
    public static void main(String args[]) {
        Test t = new Test();
        System.out.println("k value is:" + t.add(10,20));
    }
}

आउटपुट

k value is:30

क्लास में कंस्ट्रक्टर

  • क्लास में कंस्ट्रक्टर का उद्देश्य फील्ड्स को इनिशियलाइज़ करना है न कि ऑब्जेक्ट्स बनाना।
  • जब हम एब्सट्रैक्ट सुपरक्लास के नए इंस्टेंस को बनाने का प्रयास करते हैं, तो कंपाइलर एरर देगा।
  • हालांकि, हम एब्सट्रैक्ट क्लास को इन्हेरिट कर सकते हैं और इसके कंस्ट्रक्टर का उपयोग इसके वेरिएबल्स को सेट करके कर सकते हैं।

उदाहरण 2

abstract class Employee {
    public String empName;
    abstract double calcSalary();
    Employee(String name) {
        this.empName = name; // एब्सट्रैक्ट क्लास का कंस्ट्रक्टर
    }
}
class Manager extends Employee {
    Manager(String name) {
        super(name); // सबक्लास के कंस्ट्रक्टर में नाम सेट करना
    }
    double calcSalary() {
        return 50000;
    }
}
public class Test {
    public static void main(String args[]) {
        Employee e = new Manager("Adithya");
        System.out.println("Manager Name is:" + e.empName);
        System.out.println("Salary is:" + e.calcSalary());
    }
}

आउटपुट

Manager Name is:Adithya
Salary is:50000.0

  1. - Java में इंटरफेस (Interface)

    एक इंटरफेस Java में एक रेफरेंस टाइप है। यह एक क्लास के समान है। यह एब्स्ट्रैक्ट मेथड्स का एक संग्रह है। एक क्लास इंटरफेस को इम्प्लीमेंट करती है, जिससे इंटरफेस के एब्स्ट्रैक्ट मेथड्स विरासत में मिलते हैं। एब्स्ट्रैक्ट मेथड्स के साथ, एक इंटरफेस में कॉन्स्टेंट्स, डिफ़ॉल्ट मेथड्स, स्टेटिक मेथड्स, और न

  1. - Java में Abstract Class

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

  1. - Java में कंस्ट्रक्टर final क्यों नहीं हो सकता

    final कीवर्ड एक मेथड को ओवरराइड होने से रोकता है। एक कंस्ट्रक्टर को ओवरराइड नहीं किया जा सकता, Java इसे final के रूप में चिह्नित करने की अनुमति नहीं देता।