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

एक इंटरफ़ेस में एक कंस्ट्रक्टर क्यों नहीं होता है जबकि एक अमूर्त वर्ग में जावा में एक कंस्ट्रक्टर होता है?

एक निर्माता किसी वस्तु के संबंध में किसी विशेष वर्ग के गैर-स्थिर सदस्यों को प्रारंभ करना है।

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

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

उदाहरण 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; // Constructor of abstract class  
   }
}
class Manager extends Employee {
   Manager(String name) {
      super(name); // setting the name in the constructor of subclass
   }
   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. जावा में इंटरफ़ेस

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

  1. जावा में सार वर्ग

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

  1. जावा में कंस्ट्रक्टर फाइनल क्यों नहीं हो सकता

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