Mega Code Archive

 
Categories / Php / Class
 

Using Abstract Classes and Methods

Any class that contains one or more abstract methods must itself be declared as abstract.  An abstract class cannot be instantiated A class that extends the abstract class must implement the abstract methods of the parent class or itself be declared as abstract.  <? abstract class Animal{      function __construct($name='No-name', $breed='unknown', $price = 15) {          $this->name = $name;          $this->breed = $breed;          $this->price = $price;      }      function setName($name) {          $this->name = $name;      }      function setBreed($breed){          $this->breed = $breed;      }      function setPrice($price) {          $this->price = $price < 0 ? 0 : $price;      }      function getName() {          return $this->name;      }      function display() {          printf("<p>%s is a %s and costs \$%.2f.</p>\n", $this->name, $this->breed, $this->price);      }      public static $type = "animal";           public static function fly($direction = 'around') {          printf("<p>Flying %s.</p>\n", $direction);      }      abstract public function birdCall();       }  class Parrot extends Animal {      public function birdCall($singing=FALSE) {          $sound = $singing ? "twitter" : "chirp";          printf("<p>%s says: *%s*</p>\n", $this->getName(), $sound);      } } ?>