जावा एब्स्ट्रैक्शन
सार वर्ग और तरीके
डेटा एब्स्ट्रैक्शन कुछ विवरणों को छिपाने और उपयोगकर्ता को केवल आवश्यक जानकारी दिखाने की प्रक्रिया है। एब्स्ट्रैक्शन या तो एब्स्ट्रैक्ट क्लासेस या
इंटरफेस
के साथ प्राप्त किया जा सकता है (जिसके बारे में आप अगले अध्याय में अधिक जानेंगे)।
abstract
कीवर्ड एक गैर-पहुंच संशोधक है, जिसका उपयोग कक्षाओं और विधियों के लिए किया जाता है
:
- सार वर्ग: एक प्रतिबंधित वर्ग है जिसका उपयोग वस्तुओं को बनाने के लिए नहीं किया जा सकता है (इसे एक्सेस करने के लिए, इसे किसी अन्य वर्ग से विरासत में मिला होना चाहिए)।
- सार विधि: केवल एक अमूर्त वर्ग में उपयोग किया जा सकता है, और इसमें कोई शरीर नहीं है। शरीर उपवर्ग (विरासत से प्राप्त) द्वारा प्रदान किया जाता है।
एक अमूर्त वर्ग में सार और नियमित दोनों तरीके हो सकते हैं:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
उपरोक्त उदाहरण से, पशु वर्ग की वस्तु बनाना संभव नहीं है:
Animal myObj = new Animal(); // will generate an error
अमूर्त वर्ग तक पहुँचने के लिए, इसे किसी अन्य वर्ग से विरासत में मिला होना चाहिए। आइए पॉलिमॉर्फिज्म अध्याय में इस्तेमाल किए गए पशु वर्ग को एक अमूर्त वर्ग में परिवर्तित करें:
इनहेरिटेंस चैप्टर से याद रखें कि हम extends
क्लास से इनहेरिट करने के लिए कीवर्ड का इस्तेमाल करते हैं।
उदाहरण
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}
// Subclass (inherit from Animal)
class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
एब्सट्रैक्ट क्लासेस और विधियों का उपयोग क्यों और कब करें?
सुरक्षा प्राप्त करने के लिए - कुछ विवरण छुपाएं और केवल किसी वस्तु का महत्वपूर्ण विवरण दिखाएं।
नोट: अमूर्तता को इंटरफेसेस के साथ भी प्राप्त किया जा सकता है , जिसके बारे में आप अगले अध्याय में अधिक जानेंगे।