PHP Abstract Classes

Introduction to PHP Abstract Classes

PHP5 में abstract classes और methods को introduce किया गया है। Abstract classes और methods object oriented programming के abstraction feature को implement करने के लिए use की जाती है।

Abstraction एक process होती है जिसमे programmer unnecessary data को hide कर लेता है और केवल वही data show करता है जो end user के सन्दर्भ में है। इससे program की complexity कम हो जाती है और efficiency (use करने में आसानी) बढ़ती है।

आइये अब abstract methods और classes के बारे में जानने का प्रयास करते है।

Abstract Methods

Abstract methods वे methods होते है -

  • जिनकी कोई definition (method body) नहीं होती है।
  • जिनके सिर्फ नाम और parameters declare किये जाते है।
  • जिन्हें abstract keyword के साथ declare किया जाता है।

Abstract methods को सिर्फ abstract classes में define किया जाता है। इनकी body वह class provide करती है जो abstract class को inherit करती है।

Abstract Classes

Abstract class वह class होती है जिसमें एक या एक से अधिक abstract methods होते है और जिसे abstract keyword द्वारा define किया जाता है। निचे abstract classes की कुछ महत्पूर्ण charcterstics दी जा रही है जो इन्हें दूसरी classes से अलग बनाती है।

  • किसी abstract class का object नहीं create किया जा सकता है। ये ऐसी classes होती है जो सिर्फ inherit करने के लिए बनायीं जाती है। Abstract classes create करने का मुख्य कारण एक ऐसी template create करना है जो inherit करने वाली class को abstract methods को implement करने के लिए force कर सके।
  • यदि किसी class में एक या एक से अधिक abstract method है तो यह अनिवार्य है की वह class भी abstract हो।
  • एक abstract class में abstract methods के आलावा normal properties और methods भी declare किये जा सकते है।
  • यह अनिवार्य है की abstract class को inherit करने वाली class abstract class में define किये गए सभी abstract methods की body define करे।
  • Abstract class को inherit करने वाली class abstract classes और abstract methods को उसी visibility के साथ या फिर उससे कम secure visibility के साथ declare कर सकती है।
  • Abstract class को inherit करने वाली class और abstract class के methods का signature पूर्ण रूप से match होना चाहिए।

एक बात आपको हमेशा ध्यान रखनी चाहिए की abstract class multiple inheritance को support नहीं करती है। हालाँकि एक abstract class दूसरी abstract class को inherit कर सकती है लेकिन abstract class को inherit करने वाली normal class किसी दूसरी class द्वारा inherit नहीं की जानी चाहिए।

Syntax of PHP Abstract Classes

PHP में abstract classes define करने का general syntax निचे दिया जा रहा है।

<?php

[abstractKeyword] [classKeyword] [className]
{
    Normal Properties.....
    Normal Methods(with body).......

    [abstractKeyword] [visibilityMode] [functionKeyword] [functionName](arg-list);

}

?>

जैसा की आप ऊपर दिए गए syntax में देख सकते है class को abstract keyword के साथ define किया जाता है। Abstract method को argument list के बाद ही semicolon से end कर दिया जाता है उसकी body नहीं लिखी जाती है।

Example: निचे PHP में abstract classes को implement करने का simple उदाहरण दिया जा रहा है।

<?php

abstract class myAbstractClass
{
    public function baseFunction() //Declaring normal function.
    {
          echo "This is base function. <br />";
    }

    abstract public function childFunction();  //Declaring abstract function
}

class myNormalClass extends myAbstractClass
{
      public function childFunction()   //Providing body of abstract function inside normal class
      {
          echo "This is child function.";
      }
}

$obj = new myNormalClass;

$obj->baseFunction();  //Calling normal function of myAbstractClass
$obj->childFunction(); //Calling abstract function to myAbstractClass

?>

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

PHP abstract class in Hindi