IS-A संबंध
IS-A कहने का एक तरीका है - यह वस्तु उस वस्तु का एक प्रकार है। आइए देखें कि इनहेरिटेंस प्राप्त करने के लिए एक्सटेंडेड कीवर्ड का उपयोग कैसे किया जाता है।
public class Animal { } public class Mammal extends Animal { } public class Reptile extends Animal { } public class Dog extends Mammal { }
अब, यदि हम IS-A संबंध पर विचार करें, तो हम कह सकते हैं -
- स्तनपायी IS-A पशु
- सरीसृप IS-A पशु
- कुत्ता IS-A स्तनपायी
- इसलिए:कुत्ता IS-A पशु भी है
विस्तारित कीवर्ड के उपयोग से, उपवर्ग सुपरक्लास के निजी गुणों को छोड़कर, सुपरक्लास के सभी गुणों को प्राप्त करने में सक्षम होंगे।
इंस्टेंस ऑपरेटर के उपयोग से हम आश्वस्त कर सकते हैं कि स्तनपायी वास्तव में एक जानवर है।
उदाहरण
class Animal { } class Mammal extends Animal { } class Reptile extends Animal { } public class Dog extends Mammal { public static void main(String args[]) { Animal a = new Animal(); Mammal m = new Mammal(); Dog d = new Dog(); System.out.println(m instanceof Animal); System.out.println(d instanceof Mammal); System.out.println(d instanceof Animal); } }
यह निम्नलिखित परिणाम देगा -
आउटपुट
true true true
HAS-A संबंध
ये संबंध मुख्य रूप से उपयोग पर आधारित होते हैं। यह निर्धारित करता है कि क्या एक निश्चित वर्ग HAS-A निश्चित चीज है। यह संबंध कोड के साथ-साथ बग के दोहराव को कम करने में मदद करता है।
आइए एक उदाहरण देखें -
उदाहरण
public class Vehicle{ } public class Speed{ } public class Van extends Vehicle { private Speed sp; }
इससे पता चलता है कि क्लास वैन हैस-ए स्पीड। स्पीड के लिए एक अलग क्लास होने से, हमें वैन क्लास के अंदर स्पीड से संबंधित पूरा कोड डालने की ज़रूरत नहीं है, जिससे स्पीड क्लास को कई अनुप्रयोगों में पुन:उपयोग करना संभव हो जाता है।
ऑब्जेक्ट-ओरिएंटेड फीचर में यूजर्स को इस बात से परेशान होने की जरूरत नहीं है कि कौन सा ऑब्जेक्ट असली काम कर रहा है। इसे प्राप्त करने के लिए, वैन वर्ग वैन वर्ग के उपयोगकर्ताओं से कार्यान्वयन विवरण छुपाता है। तो, मूल रूप से क्या होता है कि उपयोगकर्ता वैन वर्ग को एक निश्चित क्रिया करने के लिए कहेंगे और वैन वर्ग या तो स्वयं काम करेगा या किसी अन्य वर्ग को कार्रवाई करने के लिए कहेगा।