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:

  1. Jina la method lazima lifanane
  2. Kama method inahitaji parameter zinatakiwa ziwe sawa ila kwenye child class unaweza kuongeza obtion paameter
  3. 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.