PHP OOP இல் பரம்பரை

PHP இல் மாற்றிகளை அணுகவும்
PHP OOP இல் நிலையானது

பரம்பரை என்றால் என்ன?

ஒரு வர்க்கம் மற்றொரு வகுப்பிலிருந்து பெறப்பட்டால், அது பரம்பரை எனப்படும். PHP இல் பரம்பரை தொடர்பான சில முக்கியமான சொற்கள் இங்கே உள்ளன.

  • பெற்றோர் வகுப்பு - மற்ற வகுப்புகள் பெறப்பட்ட வகுப்பு பெற்றோர் வகுப்பு என்று அழைக்கப்படுகிறது. இது அடிப்படை வகுப்பு என்றும் அழைக்கப்படுகிறது.
  • குழந்தை வகுப்பு - மற்றொரு வகுப்பிலிருந்து பெறப்படும் வகுப்பு குழந்தை வகுப்பு எனப்படும். இலை வகுப்பு அல்லது பெறப்பட்ட வகுப்பு போன்ற வேறு சில பெயர்களும் இதற்கு உண்டு.
PHP இல் பரம்பரை

PHP இல் ஒரு வகுப்பை எவ்வாறு பெறுவது?

பயன்படுத்துவதன் மூலம் ஒரு வகுப்பைப் பெறலாம் பரவியுள்ளது முக்கிய வார்த்தை. பின்வரும் உதாரணத்தைப் பாருங்கள்.

<?php
class Fruit {
    protected $name;
    protected $color;

    public function __construct($name, $color) {
        $this->name = $name;
        $this->color = $color;
    }

    public function getName() {
        return $this->name;
    }

    public function getColor() {
        return $this->color;
    }
}

class Apple extends Fruit {
    protected $variety;

    public function __construct($name, $color, $variety) {
        parent::__construct($name, $color);
        $this->variety = $variety;
    }

    public function getVariety() {
        return $this->variety;
    }
}

$apple = new Apple('Apple', 'Red', 'Fuji');
echo $apple->getName(); // Output: Apple
echo $apple->getColor(); // Output: Red
echo $apple->getVariety(); // Output: Fuji
?>

இந்த எடுத்துக்காட்டில், ஆப்பிள் வகுப்பு பரவியுள்ளது க்ளாஸ் ஃப்ரூட், அதாவது ஆப்பிள் கிளாஸ் பழ வகுப்பின் அனைத்து பண்புகளையும் அதன் சொந்த முறைகளையும் கொண்டுள்ளது. ஆப்பிள் கிளாஸ் கன்ஸ்ட்ரக்டர், பெற்றோர்:: கன்ஸ்ட்ரக்ட்() செயல்பாட்டைப் பயன்படுத்தி, பெற்றோர் கட்டமைப்பாளரை அழைக்க, பொருத்தமான அளவுருக்களை வழங்குகிறது. பின்னர், பரம்பரையைப் பயன்படுத்தி, நீங்கள் ஆப்பிள் வகுப்பின் நிகழ்வை உருவாக்கலாம் மற்றும் பெற்றோர் வகுப்பிலிருந்து செயல்பாட்டை அணுகலாம்.

மேலே உள்ளவற்றைச் சுருக்கமாகக் கூற:

  1. பெற்றோர் வகுப்பின் பொது __கட்டமைப்பு, முறைகள் மற்றும் பண்புகளை அணுக குழந்தை வகுப்பை மரபுரிமை அனுமதிக்கிறது.
  2. மேலே உள்ள எடுத்துக்காட்டில், அதன் பொருளைப் பயன்படுத்தி ஆப்பிள் வகுப்பின் முறையையும், பெற்றோர் வகுப்பின் முறைகளையும் நாம் அணுகலாம்.

பரம்பரையில் பாதுகாக்கப்பட்ட அணுகல் மாற்றிகளின் நோக்கம்

முந்தைய டுடோரியலில், ஒரு வகுப்பின் பாதுகாக்கப்பட்ட பண்புக்கூறுகள்/முறைகள் வகுப்பிற்குள்ளும் அதிலிருந்து பெறப்பட்ட வகுப்புகளிலும் அணுகக்கூடியவை என்பதை அறிந்தோம்.

பரம்பரையில் பாதுகாக்கப்பட்ட அணுகல் மாற்றிகளின் நோக்கத்தைப் புரிந்து கொள்ள, பின்வரும் எடுத்துக்காட்டைப் பார்ப்போம்.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "I am $this->name and my color is $this->color";
  }
}

class Apple extends Fruit {
  public function message() {
    echo "I am from Fruit class or Apple one?";
  }
}

$apple = new Apple("Apple", "red");
$apple->message();
$apple->intro();
?>

மேலே உள்ள எடுத்துக்காட்டில்:

  • சில பொது குணாதிசயங்கள் மற்றும் பாதுகாக்கப்பட்ட செயல்பாட்டைக் கொண்ட பழம் என்ற வகுப்பை நாங்கள் உருவாக்குகிறோம்.
  • நாங்கள் மற்றொரு வகுப்பை உருவாக்குகிறோம், ஆப்பிள், இது பழத்திலிருந்து நீண்டுள்ளது மற்றும் அதன் சொந்த உதாரணத்தைக் கொண்டுள்ளது.
  • ஆப்பிள் கிளாஸ் ஆப்ஜெக்ட்டைப் பயன்படுத்தி பழ வகுப்பின் பாதுகாக்கப்பட்ட முறையை அணுக முயற்சிக்கும் போது, ​​அது பிழையை அளிக்கிறது, ஏனெனில், பெறப்பட்ட வகுப்பிற்கு வெளியே பழ வகுப்பின் பாதுகாக்கப்பட்ட உறுப்பினரை அணுக முயற்சிக்கிறோம்.

மற்றொரு உதாரணத்தைப் பார்ப்போம், இது கடைசியாக ஒரு சிறிய மாற்றியமைக்கப்பட்ட பதிப்பாகும்.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "I am {$this->name} and my color is {$this->color}.";
  }
}

class Apple extends Fruit {
  public function message() {
    echo "Am I a fruit or an apple? ";
    $this -> intro(); // protected
  }
}

$apple = new Apple("Apple", "red");
$strawberry->message();
?>

முந்தைய எடுத்துக்காட்டில் உள்ள வகுப்பிற்குள் அதை அணுகுவதால், பழ வகுப்பின் பாதுகாக்கப்பட்ட முறை ஆப்பிள் வகுப்பில் கிடைக்கிறது.

பரம்பரையில் மேலெழுதல்

மேலெழுதுதல் என்பது குழந்தை வகுப்புகளில் அதே பெயரில் உள்ள பெற்றோர் வகுப்பின் முறைகளை மறுவரையறை செய்வதாகும். பின்வரும் பரம்பரை மேலெழுதப்பட்ட உதாரணத்தைக் கவனியுங்கள்.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "I am {$this->name} and my color is {$this->color}.";
  }
}

class Apple extends Fruit {
  public $weight;
  public function __construct($name, $color, $weight) {
    $this->name = $name;
    $this->color = $color;
    $this->weight = $weight;
  }
  public function intro() {
    echo "I am {$this->name}, my color is {$this->color}. Also, my weight is {$this->weight} kg.";
  }
}

$apple= new Apple("Apple", "red", 50);
$apple->intro();
?>

மேலே உள்ள எடுத்துக்காட்டில்:

  • மேலெழுதுதல் என்பது குழந்தை வகுப்புகளில் பெற்றோர் வகுப்பின் முறைகளை மறுபெயரிடுவதாகும். பரம்பரையை மீறுவதற்கான பின்வரும் உதாரணத்தைக் கவனியுங்கள்.
  • குழந்தை வகுப்பு ஆப்பிளில் உள்ள __கட்டுமானம் மற்றும் அறிமுக முறைகள் ஒரே பெயரைக் கொண்டுள்ளன என்பது குறிப்பிடத்தக்கது. இருப்பினும், அளவுருக்கள் மாறுபடலாம்.
  • நாங்கள் ஆப்பிள் வகுப்பின் உதாரணத்தை உருவாக்கி, வாதங்களை உருவாக்க முறைக்கு அனுப்புகிறோம்.
  • ஆப்பிள் கிளாஸ் கன்ஸ்ட்ரக்டரைப் பயன்படுத்தி ஆப்பிள் ஆப்ஜெக்ட் நிகழ்வை உருவாக்கியதால், ஆப்பிள் நிகழ்வைப் பயன்படுத்தி அறிமுக முறையை அழைக்கும்போது, ​​அது ஆப்பிள் வகுப்பின் அறிமுக செயல்பாட்டை அழைக்கிறது.

பரம்பரையில் இறுதி முக்கிய வார்த்தையின் பங்கு

பெற்றோர்/அடிப்படை வகுப்பின் செயல்பாட்டை மீறுவதிலிருந்து குழந்தை/பெறப்பட்ட வகுப்பை இறுதித் திறவுச்சொல் தடை செய்கிறது. இறுதிச் சொல் எவ்வாறு பயன்படுத்தப்படுகிறது என்பதைப் பார்க்க பின்வரும் உதாரணத்தைப் பாருங்கள்.

<?php
class Fruit {
  final public function intro() {
    // code
  }
}

class Apple extends Fruit {
// error to override the intro
  public function intro() {
    // code
  }
}
?>

ஆப்பிள் வகுப்பு முந்தைய எடுத்துக்காட்டில் உள்ள அறிமுக முறையை மேலெழுத முயற்சிக்கிறது. Fruit class இன் அறிமுகச் செயல்பாட்டுடன் இறுதிச் சொல்லைப் பயன்படுத்தியதால் அது பிழையை ஏற்படுத்தும்.

நீங்கள் PHP மரபுரிமை பற்றி மேலும் படிக்க விரும்பினால் பின்வருவனவற்றை பரிந்துரைக்கிறோம் உத்தியோகபூர்வ வழிகாட்டி.

கேள்வி பதில்

கே: PHP OOP இல், பரம்பரை என்றால் என்ன?
A: PHP OOP இல், பரம்பரை என்பது ஒரு புதிய வகுப்பை முந்தைய வகுப்பின் பண்புக்கூறுகள் மற்றும் முறைகளைப் பெற அனுமதிக்கும் அமைப்பாகும். புதிய வகுப்பு அதன் சொந்த புதிய பண்புகள் மற்றும் முறைகளைச் சேர்க்கும் அதே வேளையில், பெற்றோர் வகுப்பின் குறியீடு மற்றும் செயல்பாட்டை மீண்டும் பயன்படுத்த முடியும் என்பதை இது குறிக்கிறது.

கே: PHP இல், மற்றொரு வகுப்பிலிருந்து பெறப்படும் ஒரு வகுப்பை எப்படி வரையறுப்பது?
ப: PHP இல், மற்றொரு வகுப்பிலிருந்து பெறப்படும் ஒரு வகுப்பை வரையறுக்க "நீட்டிக்கிறது" முக்கிய வார்த்தை பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டாக, உங்களிடம் "ParentClass" பெற்றோர் வகுப்பு இருந்தால், அதிலிருந்து மரபுரிமையாக "ChildClass" குழந்தை வகுப்பை உருவாக்க விரும்பினால், நீங்கள் எழுதலாம்:

class ChildClass extends ParentClass {
  // properties and methods
}

கே: PHP இல், ஒரு வர்க்கம் பல வகுப்புகளில் இருந்து பெற முடியுமா?
ப: இல்லை, PHP இல், ஒரு வகுப்பு மற்றொரு வகுப்பிலிருந்து மட்டுமே பெற முடியும். இருப்பினும், சமமான செயல்பாட்டை வழங்க இடைமுகங்கள் பயன்படுத்தப்படலாம், மேலும் ஒரு வகுப்பு பல இடைமுகங்களை செயல்படுத்த முடியும்.

கே: குழந்தை வகுப்பில் ஒரு முறையை மேலெழுத முடியுமா?
ப: ஆம், அதே பெயரில் ஒரு முறையை உருவாக்குவதன் மூலம் குழந்தை வகுப்பில் ஒரு முறையை நீங்கள் மேலெழுதலாம். குழந்தை வகுப்பு பொருளின் மீது செயல்படுத்தப்படும் போது, ​​பெற்றோர் வகுப்பு முறைக்குப் பதிலாக குழந்தை வகுப்பு முறை பயன்படுத்தப்படும்.

கே: குழந்தை வகுப்பில் இருந்து பெற்றோர் வகுப்பு முறையைப் பயன்படுத்த முடியுமா?
ப: ஆம், குழந்தை வகுப்பிலிருந்து பெற்றோர் வகுப்பு முறையை அழைப்பதற்கான ஸ்கோப் ரெசல்யூஷன் ஆபரேட்டர் (::) மற்றும் முறைப் பெயரைத் தொடர்ந்து "பெற்றோர்" முக்கிய சொல்லைப் பயன்படுத்தலாம். எடுத்துக்காட்டாக:

class ChildClass extends ParentClass {
  public function childMethod() {
    parent::parentMethod();
  }
}

உடற்பயிற்சிகள்:

  1. ஒரு வகுப்பு மற்றொரு வகுப்பிலிருந்து பெறுகிறது என்பதைக் குறிக்க PHP இல் பயன்படுத்தப்படும் முக்கிய சொல் என்ன?
  2. குழந்தை வகுப்பில் உள்ள பெற்றோர் வகுப்பிலிருந்து ஒரு முறை அல்லது சொத்தை எப்படி அணுகலாம்?
  3. குழந்தை வகுப்பின் கட்டமைப்பாளருக்குள் உள்ள பெற்றோர் வகுப்பின் கட்டமைப்பாளரை நீங்கள் எவ்வாறு அழைக்கலாம்?
  4. குழந்தை வகுப்பில் ஒரு முறை அல்லது சொத்து மேலெழுதப்படுவதை எவ்வாறு தடுக்கலாம்?
  5. இடையே என்ன வித்தியாசம் extends மற்றும் implements PHP இல் முக்கிய வார்த்தைகள்?

பதில்:

  1. தி extends ஒரு வர்க்கம் மற்றொரு வகுப்பிலிருந்து பெறுகிறது என்பதைக் குறிக்க PHP இல் முக்கிய வார்த்தை பயன்படுத்தப்படுகிறது.
  2. இதைப் பயன்படுத்தி குழந்தை வகுப்பில் உள்ள பெற்றோர் வகுப்பிலிருந்து ஒரு முறை அல்லது சொத்தை நீங்கள் அணுகலாம் parent:: முக்கிய வார்த்தை, முறை அல்லது சொத்துப் பெயரைத் தொடர்ந்து.
  3. இதைப் பயன்படுத்தி குழந்தை வகுப்பின் கட்டமைப்பாளருக்குள் பெற்றோர் வகுப்பின் கட்டமைப்பாளரை நீங்கள் அழைக்கலாம் parent::__construct() முறை.
  4. இதைப் பயன்படுத்தி குழந்தை வகுப்பில் ஒரு முறை அல்லது சொத்து மேலெழுதப்படுவதைத் தடுக்கலாம் final பெற்றோர் வகுப்பில் முறை அல்லது சொத்து அறிவிப்புக்கு முன் முக்கிய சொல்.
  5. தி extends ஒரு வர்க்கம் மற்றொரு வகுப்பிலிருந்து மரபுரிமை பெறுகிறது என்பதைக் குறிக்க முக்கிய வார்த்தை பயன்படுத்தப்படுகிறது implements ஒரு வர்க்கம் ஒரு இடைமுகத்தை செயல்படுத்துகிறது என்பதைக் குறிக்க முக்கிய வார்த்தை பயன்படுத்தப்படுகிறது.
PHP இல் மாற்றிகளை அணுகவும்
PHP OOP இல் நிலையானது
நெருக்கமான

PHP பற்றி புதுப்பித்த நிலையில் இருங்கள்!

நாங்கள் ஸ்பேம் செய்வதில்லை!

en English
X
டாப் உருட்டு