Abstract class ni nini?
Abstract class ni class ambayo moja katika method zake ni abstract method. Nini sasa abstract method?. Hi ni method ambayo imetajwa tu jina lakini implementation (vitendea kazi vyake) yake hupatikana kwenye child class.
Ili kutengeneza abstract class ama abstract method utatumia keyword abstract angalia mfano hapo chini
<?php
abstract class gari{
abstract public function jina();
abstract public function tangazo($aina, $speed);
}
Utaona hapo kuna abstract class gari, ama abstract method mbili ambazo ni jina na tangazo.
Abstract method inaweza kutumiawa zaidi ya mara moja kwenye child class. Yaani unaweza kuwa na child class zaidi ya moja na zote zikatumia abstract method moja. Mambo ya kuzingatia unapotumia abstract method:
- Jina la method lazima lifanane
- Kama method inahitaji parameter zinatakiwa ziwe sawa ila kwenye child class unaweza kuongeza obtion paameter
- Kama umetumia protected modifier basi hata kwenye child class iwe hivyo hivyo ama uondoe kabisa protected iwe public.
Angalia mfano hapo chini:-
<?php
// Abstract class
abstract class Gari {
//abstract function
abstract function tangazo();
}
class post extends Gari {
function tangazo() {
echo "Tunauza gari aina zote";
}
}
$news = new post();
$news->tangazo();
?>
Tunauza gari aina zote
Angalia mfano hapo chini uone namna ambavyo abstract method moja inaweza kutumika zaidi ya mara moja.
<?php
// Parent class
abstract class Car {
public $name;
public function __construct($name) {
$this->name = $name;
}
abstract public function intro();
}
// Child classes
class Audi extends Car {
public function intro() {
return "Choose German quality! I'm an $this->name!";
}
}
class Volvo extends Car {
public function intro() {
return "Proud to be Swedish! I'm a $this->name!";
}
}
class Citroen extends Car {
public function intro() {
return "French extravagance! I'm a $this->name!";
}
}
// Create objects from the child classes
$audi = new audi("Audi");
echo $audi->intro();
echo "<br>";
$volvo = new volvo("Volvo");
echo $volvo->intro();
echo "<br>";
$citroen = new citroen("Citroen");
echo $citroen->intro();
?>
Mwisho:
Katika somo lialofuata utakwenda kujifunza kihusu class interface.