CodeGym /Java Course /जावा कोर /अमूर्त कक्षाओं का उपयोग कैसे करें

अमूर्त कक्षाओं का उपयोग कैसे करें

जावा कोर
स्तर 3 , सबक 3
उपलब्ध

"नमस्कार, अमीगो! कल आपको अमूर्त कक्षाओं के तरीकों से पढ़ाया गया था। अब समय आ गया है कि हम अपने ज्ञान को गहरा करें। मैं आपको सिखाना चाहता हूं कि अमूर्त कक्षाओं का सही तरीके से उपयोग कैसे करें।"

एक अमूर्त वर्ग के लिए वास्तविक दुनिया के सादृश्य के साथ आना मुश्किल है। एक वर्ग आमतौर पर किसी इकाई का एक मॉडल होता है। लेकिन एक सार वर्ग में ऐसी विधियाँ होती हैं जिन्हें लागू नहीं किया गया है, और इसमें वे विधियाँ हो सकती हैं जिन्हें लागू किया गया है। इसका क्या मतलब है? एक अमूर्त वर्ग के लिए हम क्या उपमा पा सकते हैं? क्या वास्तविक दुनिया में ऐसा कुछ है?

दरअसल, है। एक कन्वेयर बेल्ट पर लगभग तैयार कार के चेसिस की कल्पना करें। मैं या तो एक सूप-अप इंजन या अत्यधिक कुशल इंजन स्थापित कर सकता हूं। या तो एक चमड़े का इंटीरियर या कपड़े का असबाब। कार का विशिष्ट कार्यान्वयन अभी तक निर्धारित नहीं किया गया है। क्या अधिक है, चेसिस का उपयोग कई विशिष्ट कार्यान्वयनों के उत्पादन के लिए किया जा सकता है। लेकिन कोई भी कार को उसके मौजूदा स्वरूप में नहीं चाहता है। यह एक क्लासिक सार वर्ग है : इसके उदाहरण बनाने से कोई मतलब नहीं होगा, इसलिए आप उन्हें नहीं बना सकते; वर्ग केवल कई पूर्ण उत्तराधिकारियों के कारण समझ में आता है जो इसके आधार पर बनाए जाएंगे।

"यह काफी आसान है।"

लेकिन इससे भी अधिक अमूर्त उपमाएँ हो सकती हैं। कुछ कार्यान्वित विधियों के साथ इंटरफेस की तरह। उदाहरण के लिए, एक पेशेवर दुभाषिया पर विचार करें । स्रोत और लक्ष्य भाषाओं को निर्दिष्ट किए बिना, हमारे पास एक « सार अनुवादक » है। या अंगरक्षक पर विचार करें। हम जान सकते हैं कि उसे मार्शल आर्ट में महारत हासिल है और वह अपने मुवक्किल की रक्षा कर सकता है। लेकिन कौन सा मार्शल आर्ट और वह ग्राहक की रक्षा कैसे करेगा प्रत्येक विशिष्ट अंगरक्षक के "कार्यान्वयन विवरण" हैं।

आइए एक उदाहरण देखें:

जावा कोड विवरण
abstract class BodyGuard
{
 abstract void applyMartialArts(Attacker attacker);

 void shoot(Attacker attacker)
 {
    gun.shoot(attacker);
 }

 void saveClientLife(Attacker attacker)
 {
  if (attacker.hasGun())
     shoot(attacker);
  else
     applyMartialArts(attacker);
 }
}
बॉडीगार्ड वर्ग यह निर्धारित करता है कि किसी हमले से कैसे निपटा जाए: शूट करें या मार्शल आर्ट का उपयोग करें।

हालांकि, विशिष्ट मार्शल आर्ट निर्दिष्ट नहीं है, हालांकि हम निश्चित हैं कि कौशल मौजूद है।

हम कई अलग-अलग अंगरक्षक बना सकते हैं (इस वर्ग को विरासत में प्राप्त करके)। वे सभी ग्राहक की रक्षा करने और हमलावर को गोली मारने में सक्षम होंगे।

"आप सही कह रहे हैं। यह बहुत हद तक कुछ क्रियान्वित विधियों के साथ एक इंटरफ़ेस जैसा है।"

"हां, मानक जावा एसई कक्षाओं में इस प्रकार का सार वर्ग आम है।"

टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION