Etifeddiaeth yn PHP OOP

I

Beth yw Etifeddiaeth?

Pan fydd dosbarth yn deillio o ddosbarth arall, fe'i gelwir yn etifeddiaeth. Dyma rai termau pwysig yn ymwneud ag etifeddiaeth yn PHP.

  • Dosbarth Rhieni – Gelwir y dosbarth y mae'r dosbarthiadau eraill yn deillio ohono yn ddosbarth rhiant. Fe'i gelwir hefyd yn ddosbarth sylfaen.
  • Dosbarth Plentyn – Gelwir y dosbarth sy'n deillio o ddosbarth arall yn ddosbarth plentyn. Mae yna rai enwau eraill ar ei gyfer hefyd fel dosbarth dail neu ddosbarth deilliadol.
Etifeddiaeth yn PHP

Sut i etifeddu dosbarth yn PHP?

Gellir etifeddu dosbarth trwy ddefnyddio yn ymestyn allweddair. Edrychwch ar yr enghraifft ganlynol.

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

// Apple is inherited from Fruit
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();
?>

Yn yr enghraifft uchod

  • Rydym yn creu sylfaen neu ddosbarth rhiant Ffrwythau gyda rhai priodweddau a dulliau.
  • Rydyn ni'n creu afal dosbarth arall sy'n ymestyn / etifeddu'r dosbarth rhiant Ffrwythau gan ddefnyddio allweddair extends.
  • Crëwch enghraifft/gwrthrych afal a chyrchwch y dull dosbarth ffrwythau gan ddefnyddio'r etifeddiaeth.

Wrth gloi'r cyflwyniad i etifeddiaeth yn PHP, rydym yn casglu'r pwyntiau canlynol i chi.

  1. Mae etifeddiaeth yn caniatáu i'r dosbarth plentyn gael mynediad i'r cyhoedd __adeilad, dulliau a phriodweddau'r dosbarth rhiant.
  2. Yn yr enghraifft uchod, gallwn gael mynediad at y dull o ddosbarth afal gan ddefnyddio ei wrthrych, yn ogystal â dulliau dosbarth rhiant.

Cwmpas addaswyr mynediad gwarchodedig mewn Etifeddiaeth

Yn y tiwtorial blaenorol, fe wnaethom ddysgu bod priodoleddau / dulliau gwarchodedig dosbarth yn hygyrch o fewn y dosbarth a'r dosbarthiadau sy'n deillio ohono.

Er mwyn deall cwmpas addaswyr mynediad gwarchodedig mewn etifeddiaeth, gadewch i ni edrych ar yr enghraifft ganlynol yn gyntaf.

<?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();
?>

Yn yr enghraifft uchod:

  • Rydym yn creu ffrwyth dosbarth gyda rhai priodoleddau cyhoeddus a dull gwarchodedig.
  • Rydyn ni'n creu afal dosbarth arall, yn ymestyn o ddosbarth Ffrwythau ac yn creu ei esiampl.
  • Pan geisiwn gael mynediad at ddull gwarchodedig y dosbarth Ffrwythau gan ddefnyddio gwrthrych dosbarth afal, mae'n rhoi gwall oherwydd, rydym yn ceisio cael mynediad i aelod gwarchodedig o ddosbarth Ffrwythau y tu allan i'r dosbarth deilliadol.

Gadewch i ni symud at enghraifft arall, sydd mewn gwirionedd wedi'i haddasu ychydig o'r enghraifft uchod.

<?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();
?>

Yn yr enghraifft uchod, mae dull gwarchodedig y dosbarth Ffrwythau yn hygyrch yn y dosbarth afalau oherwydd ein bod yn ei gyrchu o fewn y dosbarth.

Gor- phwys mewn Etifeddiaeth

Gor-redol yn cyfeirio at ailddiffinio dulliau'r dosbarth rhiant yn y dosbarthiadau plentyn, gan ddefnyddio'r un enw. Edrychwch ar yr enghraifft ganlynol o or-redeg mewn etifeddiaeth isod.

<?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();
?>

Yn yr enghraifft uchod:

  • Rydyn ni'n creu dosbarth rhiant Ffrwythau ac afal dosbarth plentyn sy'n ymestyn y dosbarth Ffrwythau ac yn ailddiffinio'r dulliau __constructt a intro ynddo.
  • Sylwch fod yr afal dosbarth plentyn yn diffinio'r dulliau __construct a intro gyda'r un enw. Fodd bynnag, gall paramedrau fod yn wahanol.
  • Rydym yn creu intance dosbarth afal ac yn trosglwyddo'r paramedrau i'r swyddogaeth adeiladu.
  • Pan fyddwn yn galw'r dull intro gan ddefnyddio enghraifft afal, mae'n galw dull intro y dosbarth afal oherwydd ein bod wedi creu enghraifft y gwrthrych afal gan ddefnyddio adeiladwr dosbarth afal.

Rôl y Gair Allweddol Terfynol mewn etifeddiaeth

Mae terfynol allweddair yn atal y plentyn/dosbarth deilliedig rhag diystyru dull y rhiant/dosbarth sylfaen. Edrychwch ar yr enghraifft ganlynol i ddeall y defnydd o'r allweddair Terfynol.

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

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

Yn yr enghraifft uchod, mae'r dosbarth afal yn ceisio diystyru'r dull intro. Bydd yn rhoi gwall oherwydd ein bod wedi defnyddio'r allweddair terfynol gyda dull intro y dosbarth Ffrwythau.

Cliciwch am swyddog cyfeiriad at yr etifeddiaeth PHP.

Casgliadau

Mae etifeddiaeth nid yn unig yn gysyniad pwysig o OOP yn PHP, ond mewn unrhyw iaith, mae'n chwarae rhan hanfodol. O safbwynt y cyfweliad, mae cwestiynau etifeddiaeth yn bwysig iawn. Felly, rhaid i chi ymarfer yr etifeddiaeth ar eich pen eich hun.

Ychwanegu sylw

Rhwydwaith Tiwtoriaid

Dysgwch PHP o A i Z