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

PHP में बहुरूपता को समझाइए।

शुरू करने के लिए, बहुरूपता ग्रीक शब्द पॉली (जिसका अर्थ है कई) और रूपवाद (जिसका अर्थ है रूप) से लिया गया है।

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

तो चलिए इंटरफ़ेस की मदद से बहुरूपता सिद्धांत को लागू करते हैं।

इंटरफ़ेस एक इंटरफ़ेस एक वर्ग के समान है सिवाय इसके कि इसमें कोड नहीं हो सकता है। एक इंटरफ़ेस विधि नामों और तर्कों को परिभाषित कर सकता है, लेकिन विधियों की सामग्री को नहीं। इंटरफ़ेस निष्पादित करने वाले किसी भी वर्ग को इंटरफ़ेस द्वारा वर्णित सभी विधियों को निष्पादित करना होगा।

उदाहरण:

<?php
   interface Machine {
      public function calcTask();
   }
   class Circle implements Machine {
      private $radius;
      public function __construct($radius){
         $this -> radius = $radius;
      }
      public function calcTask(){
         return $this -> radius * $this -> radius * pi();
      }
   }
   class Rectangle implements Machine {
      private $width;
      private $height;
      public function __construct($width, $height){
         $this -> width = $width;
         $this -> height = $height;
      }
      public function calcTask(){
         return $this -> width * $this -> height;
      }
   }
   $mycirc = new Circle(3);
   $myrect = new Rectangle(3,4);
   echo $mycirc->calcTask();
   echo $myrect->calcTask();
?>

आउटपुट:

28.274
12

स्पष्टीकरण:

"मशीन" के नाम वाला इंटरफ़ेस कैल्कटास्क () के नाम से एक अमूर्त विधि को परिभाषित करने के लिए इसे लागू करने वाले सभी वर्गों को करता है। तदनुसार, सर्कल वर्ग इसके अंदर संबंधित निकाय के साथ कॉलटास्क () विधि को परिभाषित करके इंटरफ़ेस को लागू करता है। आयत वर्ग मशीन इंटरफ़ेस को भी लागू करता है, लेकिन कैल्कटास्क () विधि को एक अलग निकाय के साथ परिभाषित करता है जो सर्कल क्लास कैलटैस्क () विधि से भिन्न होता है। बहुरूपता दिशानिर्देश कहता है कि, इस स्थिति के लिए, कार्य की गणना करने वाली सभी विधियों का नाम समान होगा। अब, किसी भी बिंदु पर हमें विभिन्न वर्गों के लिए कार्य की गणना करने की आवश्यकता होगी, हम कैल्कटास्क () के नाम से एक विधि को कॉल करेंगे, इस विवरण पर बहुत अधिक विचार किए बिना कि वास्तव में विभिन्न मशीन के लिए कार्य की गणना कैसे करें। मुख्य बात जो हमें जानने की जरूरत है वह है कार्य की गणना करने वाली विधि का नाम।


  1. PHP में फाइनल क्लास और फाइनल मेथड को समझाइए।

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

  1. PHP में स्टेटिक और इंस्टेंस विधि की व्याख्या करें।

    PHP में, स्थिर विधियों पर इंस्टेंस विधियाँ बेहतर अभ्यास हैं। किसी भी मामले में, यह कहना नहीं है कि स्थैतिक विधियां सहायक नहीं हैं, उनका एक विशिष्ट और अनूठा उद्देश्य है। यहां हम PHP में स्थिर और आवृत्ति विधियों के बीच तुलना पर चर्चा करते हैं। यहां ध्यान दें कि इंस्टेंस मेथड हमेशा क्लास के ऑब्जेक्ट स

  1. PHP में interface_exists () फ़ंक्शन

    इंटरफ़ेस_एक्सिस्ट्स () फ़ंक्शन जाँचता है कि इंटरफ़ेस परिभाषित किया गया है या नहीं। यदि name_of_interface द्वारा दिए गए इंटरफ़ेस को परिभाषित किया गया है, तो यह TRUE लौटाता है, अन्यथा FALSE लौटाया जाता है। सिंटैक्स interface_exists(name_of_interface, autoload) पैरामीटर name_of_interface - इंटरफ़ेस