Polymorphism and method overloading In Hindi

Polymorphism and method overloading In Hindi

पीएचपी प्रोग्रामिंग में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) कांसेप्ट में क्लास पॉलीमॉर्फिज्म और क्लास मेथड ओवरलोडिंग बिल्ट-इन फंडामेंटल प्रोग्रामिंग कन्सेप्ट हैं, जो पीएचपी प्रोग्रामर को मोर कम्प्लेक्स स्माल मॉडुल फ्लेक्सिबल और री-यूजेबल क्लास प्रोग्राम सोर्स कोड क्रिएट करने की परमिशन प्रोवाइड करता हैं।

Polymorphism and method overloading In Hindi

So, let’s explore polymorphism and class method overloading in PHP programming.

Polymorphism Concept in PHP.

What is polymorphism in PHP?

पीएचपी प्रोग्रामिंग में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) कांसेप्ट पॉलीमॉर्फिज्म एक पॉपुलर क्लास ऑब्जेक्ट क्रिएशन प्रोग्रामिंग कांसेप्ट है. जिससे की, क्लास प्रोग्रामर मल्टीप्ल क्लासों के पैरामीटर ऑब्जेक्ट्स को एक ही पैरेंट क्लास के ऑब्जेक्ट्स के रूप में ट्रीट या बिहेव करते है। क्लास प्रोग्राम में पॉलीमॉर्फिज्म कांसेप्ट प्रोग्रामर को सिंगल फ़ंक्शन या डिक्लेअर क्लास मेथड को कॉल करने वाले क्लास ऑब्जेक्ट के आधार पर डिफरेंट क्लास बिहैवियर करने की परमिशन प्रोवाइड करता है।

There are two types of polymorphism in object-oriented programming (OOP).

  • Compile-time polymorphism (method overloading) – क्लास प्रोग्राम में मेथड ओवरलोडिंग के द्वारा इसे रिसीव किया जाता है, परन्तु पीएचपी प्रोग्रामिंग डायरेक्ट इसे सपोर्ट नहीं करता है।
  • Run-time polymorphism (method overriding) – क्लास प्रोग्राम में इनहेरिटेंस कांसेप्ट में मेथड ओवरराइडिंग के द्वारा इसे रिसीव किया जाता है, इसे पीएचपी प्रोग्रामिंग सपोर्ट करता है।

Polymorphism through method overriding in a class.

पीएचपी प्रोग्रामिंग में पॉलीमॉर्फिज्म कांसेप्ट को सामान्यता क्लास मेथड ओवरराइडिंग के द्वारा रिसीव किया जाता है। जहा यूजर डिफाइन क्लास प्रोग्राम में इनहेरिटेंस एक सबक्लास को उस क्लास मेथड को ओवरराइड करने की परमिशन प्रोवाइड करता है, जिससे की वह पैरेंट या रुट क्लास से इनहेरिटेंस प्रॉपर्टीज में रिसीव करता है। यह क्लास मेथड रियलटाइम क्लास ऑब्जेक्ट टाइप के आधार पर एक्सेक्यूट होती है, न कि क्लास रेफ़्रेन्स टाइप के आधार पर।

Example of class polymorphism in PHP programming.

<?php

// here computer declare as Parent class

class computer {

    public function select_choice() {

        echo “Select your desire computer choice \n”;

    }

}

// here computer laptop Child class 1 created

class laptop extends computer {

    public function select_choice() {

        echo “Hp Laptop \n”;

    }

}

// here computer desktop Child class 2 created

class desktop extends computer {

    public function select_choice() {

        echo “Dell Desktop \n”;

    }

}

// here actual Polymorphism perform action

function selection(computer $computer) {

    $computer->select_choice();  // here This will call the appropriate class method based on the declare class object’s type

}

$laptop = new laptop();

$desktop = new desktop();

selection($laptop);  // Result – Hp Laptop

selection($desktop);  // Result – Dell Desktop

?>

Explanation of polymorphism through method overriding.

  • इस प्रोग्राम में हमने एक पैरेंट क्लास computer और दो चाइल्ड क्लासेस laptop और desktop क्रिएट की हैं।
  • यहाँ क्लास में select_choice() मेथड को laptop और desktop दोनों क्लासेस में स्पेसिफिक बिहैवियर प्रोवाइड करने के लिए प्रोग्राम में ओवरराइड किया गया है।
  • इसमें selection() फ़ंक्शन computer टाइप का एक ऑब्जेक्ट एक्सेप्ट करता है, और select_choice() प्रोग्राम में फंक्शन को कॉल करता है। यहाँ पॉलीमॉर्फिज़्म फीचर्स के वजह से, सही select_choice() मेथड को रियलटाइम क्लास ऑब्जेक्ट टाइप laptop या desktop के आधार पर कॉल किया जाता है, न कि रेफ़्रेन्स टाइप computer क्लास के आधार पर।

Key points about polymorphism in PHP classes.

  • यह पीएचपी प्रोग्रामिंग में क्लास में एक ही क्लास मेथड को उसे कॉल करने वाले ऑब्जेक्ट के आधार पर मल्टीप्ल बिहैवियर परमिशन प्रोवाइड है।
  • पीएचपी प्रोग्रामिंग में पॉलीमॉर्फिज़्म कांसेप्ट को सामान्यता क्लास मेथड ओवरराइडिंग को यूज़ करके अप्लाई किया जाता है।

Method Overloading Concept in PHP Programming.

What is Method Overloading in a PHP Class?

पीएचपी प्रोग्रामिंग में मेथड ओवरलोडिंग कांसेप्ट एक यूजर डिफाइन क्लास को बराबर  नाम से क्रिएटेड परन्तु मल्टीप्ल डिफरेंट पैरामीटर वाले क्लास मेथड को होल्ड करने की परमिशन प्रोवाइड करता है। कुछ पॉपुलर OOP प्रोग्रामिंग लैंग्वेज में जैसे, जावा या सी++ लैंग्वेज में प्रोग्रामर क्लास पैरामीटर्स की नंबर या टाइप को रिप्लेस कर क्लास मेथड्स को ओवरलोड कर सकते हैं। याद रहे, पीएचपी प्रोग्रामिंग ट्रेडिशनल आर्डर में रियलटाइम मेथड ओवरलोडिंग कांसेप्ट को सपोर्ट नहीं करता है।

पीएचपी प्रोग्रामिंग में क्लास मेथड ओवरलोडिंग कन्सेप्ट को मैजिक मेथड्स __call() और __callStatic() क्लास फंक्शन के द्वारा कण्ट्रोल किया जाता है। ये मेथड्स क्रिएटेड यूजर डिफाइन क्लास में तब आटोमेटिक इनवोक होते हैं. जब यूजर डिफाइन क्लास प्रोग्राम में किसी ऐसी क्लास मेथड को कॉल करने का ट्राय किया जाता है. जो मौजूदा क्लास में डिफाइन ही नहीं है।

यहाँ क्लास प्रोग्राम में __call() फंक्शन के साथ क्लास मेथड्स को ओवरलोड करना इंस्टेंस मेथड्स के आधार पर.

यहाँ क्लास प्रोग्राम में __call() मैजिक मेथड आपको अपरिभाषित या गैर-मौजूद मेथड्स के लिए मेथड कॉल को मैनेज करने की परमिशन प्रोवाइड करता है। यह मल्टीप्ल क्लास पैरामीटर सिग्नेचर वाले क्लास मेथड्स को डायनामिक आर्डर में कॉल करने की परमिशन को प्रोवाइड कर क्लास ओवरलोडिंग का भ्रम क्रिएट करता है।

Example of method overloading with the __call() function in PHP programming.

<?php

class calculation {

    // here we reate a Magic class method __call function to handle overloading

    public function __call($method, $args) {

        if ($method == ‘mul’ && count($args) == 2) {

            return $args[0] * $args[1];

        } elseif ($method == ‘mul’ && count($args) == 3) {

            return $args[0] * $args[1] * $args[2];

        } else {

            return “unsupported class method or number of class arguments \n”;

        }

    }

}

$calculate = new calculation();

echo $calculate->mul(4, 3) . “\n”;  // Result – 12

echo $calculate->mul(3, 3, 3) . “\n”;  // Result – 27

echo $calculate->mul(3, 4, 7, 8) . “\n”;  // Result – unsupported class method or number of class arguments

?>

Explanation of method overloading with the __call() function.

  • यहाँ क्लास प्रोग्राम में __call() मेथड तब अप्लाई होती है, जब किसी अपरिभाषित क्लास मेथड को कॉल करने का ट्राय किया जाता है। इस कंडीशन में, प्रोग्रामर यहाँ  यूज़ mul() मेथड को ओवरलोड करने का भ्रम क्रिएट करने के लिए करते हैं, इसमें दिए गए प्रोग्राम आर्गुमेंट की नंबर को चेक किया जाता है।
  • जहा mul() क्लास मेथड 4 या 3 आर्गुमेंट ले सकती है, और __call() फंक्शन क्लास आर्गुमेंट की नंबर के आधार पर इन्हे डायनामिक आर्डर में प्रोसेस करता है।

Overloading static methods with __callStatic() in PHP programming.

पीएचपी प्रोग्रामिंग में __callStatic() फंक्शन मैजिक मेथड को किसी पर्टिकुलर कंडीशन में अप्लाई किया जाता है, जब प्रोग्रामर क्लास प्रोग्राम में किसी ऐसी स्टैटिक मेथड को कॉल करने का ट्राय करते हैं, जो की क्लास में मौजूद नहीं है।

Example of static method overloading in a PHP program.

<?php

// calculation class created

class calculation {

    // here Magic class method for static method overloading concept

    public static function __callStatic($method, $args) {

        if ($method == ‘subtract’ && count($args) == 2) {

            return $args[0] – $args[1];

        } elseif ($method == ‘subtract’ && count($args) == 3) {

            return $args[0] – $args[1] – $args[2];

        } else {

            return “unsupported class method or number of class arguments \n”;

        }

    }

}

echo calculation::subtract(12, 4) . “\n”;  // Result – 8

echo calculation::subtract(13, 4, 6) . “\n”;  // Result – 3

echo calculation::subtract(17, 2, 6, 7) . “\n”;  // Result – unsupported class method or number of class arguments

?>

Explanation of static method overloading.

  • इस प्रोग्राम में __callStatic() फंक्शन मैजिक मेथड अपरिभाषित स्टैटिक मेथड के कॉल को मैनेज करते है।
  • प्रोग्रामर इसका यूज़ स्थिर subtract() मेथड को मल्टीप्ल नंबर्स के आर्गुमेंट को मैनेज करने के लिए ओवरलोड करने की परमिशन प्रोवाइड करते हैं।

main Differences Between Polymorphism and Method Overloading in php class

FeaturePhp Polymorphism conceptPhp Method Overloading concept
Definition or behaviourPolymorphism have ability to call the same class method on different class objects, here with each class object having its own implementation of the class method.Method Overloading have ability to define multiple class methods with the same name in active class but with multiple class parameters managed in PHP via magic methods like __call method.
How to ImplementationWe can Achieved via method overriding in PHP through inheritance class features.Method Overloading features Achieved via magic methods (__call() for instance methods, __callStatic() for static methods) in PHP language.
Multiple Use CaseUsed to handle Polymorphism method class calls that behave differently depending on the class object type (e.g., laptop vs. desktop).Method Overloading Used to simulate overloading by handling class calls to methods with different numbers of user declare class parameters.
Is PHP SupportPolymorphism Supported natively via method overriding in php programming language.Method Overloading concept Not natively supported php but can be achieved using magic methods to support php.

A summary of polymorphism and class method overloading in PHP programming.

  • पीएचपी प्रोग्रामिंग में पलीमॉरफिस्म कांसेप्ट मल्टीप्ल क्लास ऑब्जेक्ट्स को एक ही मेथड पर मल्टीप्ल आर्डर में रेसपनसे करने की परमिशन प्रोवाइड करता है। पीएचपी लैंग्वेज में, इसे सामान्यता तोर पर मेथड ओवरराइडिंग के आधार पर अप्लाई किया जाता है।
  • पीएचपी प्रोग्रामिंग में मेथड ओवरलोडिंग मैजिक मेथड __call() और __callStatic() फंक्शन के द्वारा से रिसीव की जाती है, क्योंकि पीएचपी लैंग्वेज कुछ अन्य प्रोग्रामिंग लैंग्वेजेज की तरह ट्रेडिशनल आर्डर में मेथड ओवरलोडिंग का सपोर्ट नहीं करता है।
  • पीएचपी क्लास कन्सेप्ट में पॉलीमॉरफिस्म फीचर्स प्रोग्रामर एक फ्लेक्सिबल और री-यूजेबल  प्रोग्राम मॉडुल सोर्स कोड क्रिएट करने के लिए यूज़फुल है, यहाँ मेथड ओवरलोडिंग डायनामिक मेथड कॉल को मैनेज करने में हेल्पफुल होती है. जब प्रोग्रामर मल्टीप्ल आर्गुमेंट कैलकुलेशन वाली मेथड्स का सपोर्ट करना चाहते हैं।

Leave a Reply