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

Java में Inheritance (IS-A) बनाम Composition (HAS-A) संबंध

IS-A Relationship

IS-A कहने का एक तरीका है - यह ऑब्जेक्ट उस ऑब्जेक्ट का एक प्रकार है। आइए देखें कि extends कीवर्ड का उपयोग इनहेरिटेंस प्राप्त करने के लिए कैसे किया जाता है।

public class Animal { } 
public class Mammal extends Animal { } 
public class Reptile extends Animal { } 
public class Dog extends Mammal { }

अब, यदि हम IS-A संबंध पर विचार करते हैं, तो हम कह सकते हैं −

  • Mammal IS-A Animal
  • Reptile IS-A Animal
  • Dog IS-A Mammal
  • इसलिए: Dog IS-A Animal भी

extends कीवर्ड के उपयोग से, सबक्लासेस सुपरक्लास की सभी प्रॉपर्टीज को इनहेरिट कर सकेंगे सिवाय सुपरक्लास की प्राइवेट प्रॉपर्टीज के।

हम इंस्टेंस ऑपरेटर के उपयोग से सुनिश्चित कर सकते हैं कि Mammal वास्तव में एक Animal है।

उदाहरण

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 relationship

ये संबंध मुख्य रूप से उपयोग पर आधारित हैं। यह निर्धारित करता है कि एक निश्चित क्लास HAS-A निश्चित चीज। यह संबंध कोड के डुप्लिकेशन के साथ-साथ बग्स को कम करने में मदद करता है।

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

उदाहरण

public class Vehicle{ } 
public class Speed{ } 
public class Van extends Vehicle { 
    private Speed sp; 
}

यह दर्शाता है कि क्लास Van HAS-A Speed। Speed के लिए एक अलग क्लास होने से, हमें Van क्लास के अंदर स्पीड से संबंधित संपूर्ण कोड डालने की आवश्यकता नहीं है, जो Speed क्लास को मल्टीपल एप्लिकेशन में पुनः उपयोग करने योग्य बनाता है।

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

  1. - Java में Multilevel Inheritance

    मल्टीलेवल इनहेरिटेंस - एक क्लास एक क्लास से प्रॉपर्टीज इनहेरिट करती है जिसने फिर से प्रॉपर्टीज इनहेरिट की हैं।उदाहरणclass Shape { public void display() { System.out.println(Inside display); } } class Rectangle extends Shape { public void area() { System.out.println

  1. - Java में Single Level Inheritance

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

  1. Java में इनहेरिटेंस के प्रकार Java में इनहेरिटेंस के प्रकार

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