एक अमूर्त वर्ग अन्य वर्गों के लिए एक ब्लूप्रिंट की तरह है। आप किसी अमूर्त वर्ग से सीधे कोई ऑब्जेक्ट नहीं बना सकते। इसके बजाय, आप इसे अन्य वर्गों के लिए एक आधार के रूप में उपयोग करते हैं जो इस पर निर्माण कर सकते हैं और विवरण भर सकते हैं।
सार कक्षाएं तब उपयोगी होती हैं जब आप एक सामान्य अवधारणा को परिभाषित करना चाहते हैं जिसमें कुछ साझा विशेषताएं होती हैं, लेकिन आप विशिष्ट विवरणों के लिए भी जगह छोड़ना चाहते हैं जो विभिन्न स्थितियों में भिन्न हो सकते हैं। उदाहरण के लिए, आपके पास "जानवर" की एक सामान्य अवधारणा हो सकती है जिसमें खाने या सोने जैसी सामान्य विशेषताएं शामिल हैं, लेकिन अलग-अलग जानवर अलग-अलग तरीकों से खा सकते हैं या सो सकते हैं।
यहां बताया गया है कि आप एनिमल नामक एक अमूर्त वर्ग कैसे बना सकते हैं:
public abstract class Animal { abstract void makeSound(); // Abstract method, no body void sleep() { System.out.println("This animal sleeps."); } }
इस उदाहरण में, makeSound() एक अमूर्त विधि है, जिसका अर्थ है कि इसमें अभी तक कोई बॉडी नहीं है। हालाँकि, स्लीप() विधि पूरी तरह से लागू है।
अब, आइए कुछ कक्षाएं बनाएं जो पशु वर्ग का विस्तार करें:
public class Dog extends Animal { void makeSound() { System.out.println("The dog barks."); } } public class Cat extends Animal { void makeSound() { System.out.println("The cat meows."); } }
डॉग और कैट दोनों वर्गों को मेकसाउंड() विधि का अपना संस्करण प्रदान करना होगा, लेकिन उन्हें स्लीप() विधि विरासत में मिली है।
एक अमूर्त वर्ग तब बहुत अच्छा होता है जब आपके पास कुछ विधियां होती हैं जिन्हें सभी बाल वर्गों के बीच साझा किया जाना चाहिए, लेकिन आप कुछ तरीकों को उन बाल वर्गों द्वारा परिभाषित करने के लिए बाध्य करना भी चाहते हैं।
public abstract class Bird extends Animal { void move() { System.out.println("The bird flies."); } }
अब, कोई भी वर्ग जो बर्ड का विस्तार करता है, उसे एनिमल से मूव() विधि और स्लीप() विधि दोनों विरासत में मिलेंगी, लेकिन फिर भी मेकसाउंड() को लागू करने की आवश्यकता है।
जावा में सार कक्षाएं विशिष्ट विवरणों को परिभाषित करने के लिए उन कक्षाओं के लिए जगह छोड़ते हुए संबंधित कक्षाओं के लिए एक साझा आधार बनाने का एक तरीका प्रदान करती हैं। वे साझा कार्यक्षमता और लचीलेपन के बीच संतुलन बनाते हैं, जिससे आपका कोड शक्तिशाली और पुन: प्रयोज्य दोनों बन जाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3