Clas Abstract ann am PHP OOP

A

San artaigil seo, ionnsaichidh sinn clas eas-chruthach ann am PHP.

Dè a th ’ann an clas eas-chruthach ann am PHP?

Ann an clas eas-chruthach tha dearbhadh dhòighean ach chan e am mìneachadh. Chan eil ann ach na h-ainmean aca. Tha e an urra ri clas na cloinne na dòighean sin a mhìneachadh.

Dè a th’ ann an dòigh eas-chruthach?

Is e dòigh eas-chruthach dòigh de chlas eas-chruthach a tha air ainmeachadh a’ cleachdadh prìomh fhaclan eas-chruthach agus anns nach eil am bodhaig. Tha e air a mhìneachadh le clas an leanaibh.

  • eas-chruthach Tha prìomh fhacal air a chleachdadh gus clas no modh eas-chruthach ainmeachadh.
  • Feumaidh co-dhiù aon dòigh eas-chruthach a bhith ann an clas eas-chruthach. Ach, faodaidh e cuideachd dòighean neo-shònraichte a bhith ann cuideachd.

Syntax

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

Dè na riaghailtean a th’ ann an clas eas-chruthach ann am PHP?

  • Feumaidh co-dhiù aon dòigh eas-chruthach a bhith ann an clas eas-chruthach. Ge-tà, faodaidh dòighean neo-shònraichte a bhith ann cuideachd.
  • Nuair a dh’ ainmicheas pàiste an clas pàrant eas-chruthach a shealbhachadh, feumaidh e dòighean eas-chruthach clas pàrant a mhìneachadh leis an aon ainm.
  • Fhad ‘s a thathar a’ mìneachadh na dòighean asbtract ann an clas na cloinne, bu chòir a mhìneachadh le mion-atharrachaidh ruigsinneachd nach eil cho cuingealaichte. Mar eisimpleir, ma tha an dòigh eas-chruthach aig a’ chlas phàrant dìon inneal-atharrachaidh ruigsinneachd. Mar sin, nuair a tha an clas cloinne a’ mìneachadh an dòigh seo, bu chòir dha an inneal-atharrachaidh ruigsinneachd aige a chumail mar an dàrna cuid dìon or poblach. Chan urrainn dha a shuidheachadh prìobhaideach, leis gu bheil e nas cuingealaichte na an dìon.
  • Feumaidh an clas cloinne a tha a’ mìneachadh an dòigh eas-chruthach an àireamh cho-ionann de argamaidean a thoirt seachad mar a tha air a shònrachadh anns an dearbhadh anns a’ chlas tarraing phàrant. Ach, faodaidh argamaidean roghainneil/a bharrachd a bhith aig clas na cloinne a bharrachd air an fheadhainn a tha a dhìth.

Eisimpleir de chlas Abstract ann am 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();

?>

Mìneachadh air an eisimpleir gu h-àrd

  • Anns an eisimpleir gu h-àrd, bidh sinn a’ cruthachadh clas eas-chruthach Bike anns a bheil modh eas-chruthach Ro-ràdh.
  • Bidh sinn a’ cruthachadh dà chlas chloinne Honda agus Suzuki a tha a’ leudachadh a’ chlas eas-chruthach agus a’ mìneachadh an dòigh ro-ràdh.
  • Bidh sinn a’ cruthachadh nithean nan clasaichean sin agus a’ gairm an dòigh ro-ràdh a’ cleachdadh na stuthan aca. Bidh an dòigh ro-ràdh ag obair a rèir a’ bhuileachadh a thug a chlas co-fhreagarrach seachad.

Eisimpleir de chlas eas-chruthach le argamaidean a bharrachd ann an dòighean a 'dol thairis air



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

Mìneachadh air an eisimpleir gu h-àrd

  • Tha loidsig bunaiteach an eisimpleir gu h-àrd coltach ris an eisimpleir roimhe. Ach, bheir sinn seachad argamaid a bharrachd don ghnìomh anns an dòigh ro-ràdh de Suzuki clas.
  • Mar a tha sinn air an riaghailt a mhìneachadh na bu thràithe san oideachadh seo, feumaidh inneal-atharrachaidh ruigsinneachd clas cloinne fhad ‘s a tha e a’ cur an gnìomh modh eas-chruthach a ’chlas phàrant a bhith nas lugha na mar a chaidh a shònrachadh sa chlas pàrant airson an dòigh seo a dhearbhadh. Mar sin, bidh an dà chlas cloinne a’ cleachdadh inneal-atharrachaidh ruigsinneachd poblach gus an dòigh ro-ràdh a mhìneachadh.
  • Feuch ris a’ ghnìomh a mhìneachadh le inneal-atharrachaidh ruigsinneachd prìobhaideach, bheir e mearachd.

Nota: Chan eil dòigh togail sam bith anns a’ chlas eas-chruthach. Mar sin, chan urrainn dhuinn eisimpleir de chlas eas-chruthach a chruthachadh.

Sgrìobhadh clas PHP 8 sgrìobhainnean oifigeil.

Cuir beachd ris

Lìonra Luchd-teagaisg

Ionnsaich PHP bho A gu Z