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

जावा में इनहेरिटेंस (is-a) v/s कंपोजिशन (है-ए) संबंध

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;  
}

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

ऑब्जेक्ट-ओरिएंटेड फीचर में यूजर्स को इस बात से परेशान होने की जरूरत नहीं है कि कौन सा ऑब्जेक्ट असली काम कर रहा है। इसे प्राप्त करने के लिए, वैन वर्ग वैन वर्ग के उपयोगकर्ताओं से कार्यान्वयन विवरण छुपाता है। तो, मूल रूप से क्या होता है कि उपयोगकर्ता वैन वर्ग को एक निश्चित क्रिया करने के लिए कहेंगे और वैन वर्ग या तो स्वयं काम करेगा या किसी अन्य वर्ग को कार्रवाई करने के लिए कहेगा।


  1. जावा में बहुस्तरीय विरासत

    बहुस्तरीय वंशानुक्रम - एक वर्ग को उस वर्ग से गुण विरासत में मिलते हैं जिसके पास फिर से गुण होते हैं। उदाहरण class Shape {    public void display() {       System.out.println("Inside display");    } } class Rectangle extends Shape {    public voi

  1. जावा में सिंगल लेवल इनहेरिटेंस

    सिंगल लेवल इनहेरिटेंस - एक क्लास को सिंगल क्लास से गुण विरासत में मिलते हैं। उदाहरण के लिए, क्लास बी को क्लास ए विरासत में मिली है। उदाहरण class Shape {    public void display() {       System.out.println("Inside display");    } } class Rectangle extends

  1. जावा में विरासत के प्रकार

    Java तीन प्रकार के इनहेरिटेंस का समर्थन करता है - एकल स्तर की विरासत - एक वर्ग को एक वर्ग से गुण विरासत में मिलते हैं। उदाहरण के लिए, क्लास बी को क्लास ए विरासत में मिली है। बहुस्तरीय वंशानुक्रम - एक वर्ग को उस वर्ग से गुण विरासत में मिलते हैं, जिसके पास फिर से गुण होते हैं पदानुक्रमित वंशानुक्रम -