Dosbarth Haniaethol yn PHP OOP

A

Yn yr erthygl hon, byddwn yn dysgu dosbarth haniaethol yn PHP.

Beth yw dosbarth haniaethol yn PHP?

Mae dosbarth haniaethol yn cynnwys datgan dulliau ond nid eu diffiniad. Dim ond eu henwau sy'n cynnwys. Cyfrifoldeb y dosbarth plant yw diffinio'r dulliau hyn.

Beth yw dull haniaethol?

Mae dosbarth haniaethol yn ddull o ddosbarth haniaethol a ddatganir gan ddefnyddio geiriau allweddol haniaethol ac nad yw'n cynnwys y corff. Fe'i diffinnir gan ddosbarth y plentyn.

  • haniaethol defnyddir allweddair i ddatgan dosbarth neu ddull haniaethol.
  • Rhaid i ddosbarth haniaethol gynnwys o leiaf un dull haniaethol. Fodd bynnag, gall hefyd gynnwys dulliau an-haniaethol hefyd.

Cystrawen

<?php
abstract class ParentClass {
  abstract public function someMethod1();
  abstract public function someMethod2($name, $color);
  abstract public function someMethod3() : string;
}
?>

Beth yw rheolau dosbarth haniaethol yn PHP?

  • Rhaid i ddosbarth haniaethol gynnwys o leiaf un dull haniaethol. Fodd bynnag, gall gynnwys dulliau an-haniaethol hefyd.
  • Pan fydd plentyn o'r enw yn etifeddu'r dosbarth rhiant haniaethol, rhaid iddo ddiffinio dulliau haniaethol dosbarth rhiant gyda'r un enw.
  • Wrth ddiffinio'r dulliau asbtract yn y dosbarth plant, dylid ei ddiffinio gydag addasydd mynediad llai cyfyngedig. Er enghraifft, os yw'r dosbarth rhiant yn cynnwys y dull haniaethol sydd ganddo diogelu addasydd mynediad. Felly, pan fydd y dosbarth plentyn yn diffinio'r dull hwn, dylai gadw ei addasydd mynediad fel y naill neu'r llall diogelu or cyhoeddus. Ni all ei osod i preifat, gan ei fod yn fwy cyfyngedig na'r gwarchodedig.
  • Rhaid i'r dosbarth plentyn sy'n diffinio'r dull haniaethol basio'r nifer cyfartal o ddadleuon fel y nodir yn y dyfarniad yn y dosbarth asbtract rhiant. Fodd bynnag, gall y dosbarth plant gael dadleuon dewisol / ychwanegol heblaw'r rhai sy'n ofynnol.

Enghraifft o ddosbarth Haniaethol yn PHP

<?php
// Parent abstract class
abstract class Bike {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract public function introduction() : string;
}

// Child classes defining the parent classes
class Honda extends Bike {
  public function intro() : string {
    return "I am $this->name!";
  }
}

class Suzuki extends Bike {
  public function introduction() : string {
    return "I am $this->name!";
  }
}

// Objects from child classes
$honda = new honda("Honda");
echo $honda->introduction();

$suzuki= new suzuki("Suzuki");
echo $suzuki->introduction();

?>

Esboniad o'r enghraifft uchod

  • Yn yr enghraifft uchod, rydyn ni'n creu dosbarth haniaethol Beicio mae hynny'n cynnwys dull haniaethol cyflwyno.
  • Rydyn ni'n creu dau ddosbarth i blant Honda ac Suzuki sy'n ymestyn y dosbarth haniaethol ac yn diffinio'r dull cyflwyno.
  • Rydyn ni'n creu gwrthrychau y dosbarthiadau hyn ac yn galw'r dull cyflwyno gan ddefnyddio eu gwrthrychau. Mae'r dull cyflwyno yn gweithio yn unol â'r gweithredu a roddir gan ei ddosbarth cyfatebol.

Enghraifft o ddosbarth haniaethol gyda dadleuon ychwanegol mewn dull yn drech na hynny



<?php
// Parent abstract class
abstract class Bike {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract protected function introduction($model) : string;
}

// Child classes defining the parent classes
class Honda extends Bike {
  public function intro($model) : string {
    return "I am $this->name. My model is $model";
  }
}

class Suzuki extends Bike {
  public function introduction($model, $color=null) : string {
    return "I am $this->name. My model is $model and color is $color";
  }
}

// Objects from child classes
$honda = new honda("Honda");
echo $honda->introduction();

$suzuki= new suzuki("Suzuki");
echo $suzuki->introduction();
?>

Esboniad o'r enghraifft uchod

  • Mae rhesymeg sylfaenol yr enghraifft uchod fel yr enghraifft flaenorol. Fodd bynnag, rydym yn trosglwyddo dadl ychwanegol i'r swyddogaeth yn y dull cyflwyno o Suzuki dosbarth.
  • Gan ein bod wedi diffinio'r rheol yn gynharach yn y tiwtorial hwn, rhaid i addasydd mynediad y dosbarth plentyn wrth weithredu dull haniaethol y dosbarth rhiant fod yn llai na'r hyn a nodwyd yn y dosbarth rhiant ar gyfer datgan y dull hwn. Felly, mae'r ddau ddosbarth plant yn defnyddio addasydd mynediad cyhoeddus i ddiffinio'r dull cyflwyno.
  • Ceisiwch ddiffinio'r swyddogaeth gydag addasydd mynediad preifat, bydd yn cynhyrchu gwall.

Nodyn: Nid yw'r dosbarth haniaethol yn cynnwys unrhyw ddull lluniwr. Felly, ni allwn greu'r enghraifft o ddosbarth haniaethol.

Dogfennaeth tynnu dosbarth PHP 8 dogfennaeth swyddogol.

Ychwanegu sylw

Rhwydwaith Tiwtoriaid

Dysgwch PHP o A i Z