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

क्या Java में एब्सट्रैक्ट क्लास का ऑब्जेक्ट बना सकते हैं?


नहीं, हम एब्सट्रैक्ट क्लास का ऑब्जेक्ट नहीं बना सकते। लेकिन हम एब्सट्रैक्ट क्लास का एक रेफरेंस वेरिएबल बना सकते हैं। रेफरेंस वेरिएबल का उपयोग डेराइव्ड क्लासेस के ऑब्जेक्ट्स को रेफर करने के लिए किया जाता है (एब्सट्रैक्ट क्लास की सबक्लासेस)।

एब्सट्रैक्ट क्लास का अर्थ है इम्प्लीमेंटेशन को छिपाना और यूजर को फंक्शन डेफिनिशन दिखाना एब्सट्रैक्ट क्लास के रूप में जाना जाता है। एक जावा एब्सट्रैक्ट क्लास में इंस्टेंस मेथड्स हो सकते हैं जो डिफ़ॉल्ट बिहेवियर को इम्प्लीमेंट करते हैं यदि हम आवश्यकता जानते हैं और आंशिक इम्प्लीमेंटेशन के लिए हम एब्सट्रैक्ट क्लास चुन सकते हैं।

उदाहरण

abstract class Diagram {
    double dim1;
    double dim2;
    Diagram(double a, double b) {
        dim1 = a;
        dim2 = b;
    }
    // area अब एक एब्सट्रैक्ट मेथड है
    abstract double area();
}
class Rectangle extends Diagram {
    Rectangle(double a, double b) {
        super(a, b);
    }
    // रेक्टेंगल के लिए area ओवरराइड
    double area() {
        System.out.println("Inside Area for Rectangle.");
        return dim1 * dim2;
    }
}
class Triangle extends Diagram {
    Triangle(double a, double b) {
        super(a, b);
    }
    // ट्रायंगल के लिए area ओवरराइड
    double area() {
        System.out.println("Inside Area for Triangle.");
        return dim1 * dim2 / 2;
    }
}
public class Test {
    public static void main(String args[]) {
        // Diagram d = new Diagram(10, 10); // अब अवैध
        Rectangle r = new Rectangle(9, 5);
        Triangle t = new Triangle(10, 8);
        Diagram diagRef; // यह ठीक है, कोई ऑब्जेक्ट नहीं बनाया गया
        diagRef = r;
        System.out.println("Area of Rectangle is: " + diagRef.area());
        diagRef = t;
        System.out.println("Area of Triangle is:" + diagRef.area());
    }
}

उपरोक्त उदाहरण में, हम Diagram टाइप का ऑब्जेक्ट नहीं बना सकते लेकिन हम Diagram टाइप का एक रेफरेंस वेरिएबल बना सकते हैं। यहां हमने Diagram टाइप का एक रेफरेंस वेरिएबल बनाया और Diagram क्लास रेफरेंस वेरिएबल का उपयोग Rectangle और Triangle क्लास के ऑब्जेक्ट्स को रेफर करने के लिए किया।

आउटपुट

Inside Area for Rectangle.
Area of Rectangle is: 45.0
Inside Area for Triangle.
Area of Triangle is:40.0

  1. क्या Java में Enum किसी क्लास को एक्सटेंड कर सकता है? क्या Java में Enum किसी क्लास को एक्सटेंड कर सकता है?

    नहीं, Java में सभी एनम अंतर्निहित रूप से java.lang.Enum को एक्सटेंड करते हैं। चूंकि Java बहु-विरासत का समर्थन नहीं करता, एनम किसी अन्य क्लास को एक्सटेंड नहीं कर सकते।त्रुटि उदाहरणclass Sample { } enum Scooters extends Sample { } // संकलन त्रुटिसंकलन त्रुटिEnumExample.java:5: error: { expected enum

  1. - Java में Abstract Class

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

  1. - JSON ऑब्जेक्ट से Python क्लास कैसे बनाएं?

    हम python-jsonschema-objects का उपयोग कर सकते हैं जो jsonschema के ऊपर बना है। python-jsonschema-objects Python में उपयोग के लिए JSON स्कीमा के लिए ऑटोमैटिक क्लास-आधारित बाइंडिंग प्रदान करता है। हमारे पास एक सैंपल JSON स्कीमा है: schema = { title: Example Schema, type: object, propertie