Have you ever dreamt to understand the inheritance and the overload from once 5 minute example? No such dreams? Anyway, in case you ever tend to think about it, here is the example with PHP.
Let’s imagine that we have two classes – a normal person and an athlete. The normal person has name, age and city, and the athlete has all of those plus a bunch of sports he is good at. Thus, the athlete inherits the person 🙂
Furthermore, they both have a method called “get_information”. Thus, if you want to get the information for the person, you receive a small string about his name and city and for the athlete you receive name, city, age and sports in a nice green table.
Like in the example below:
How was this achieved? With the beautiful code below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<? class Person{ public $name; public $age; public $city; public function get_information(){ return "<i>".$this->name."</i> is from ".$this->city."."; } } class Athlete extends Person{ public $sports = array(); public function get_information(){ $str_information = "<i>".$this->name."</i> is an athlete from ".$this->city.". "; $str_information .= "The athlete is ".$this->age." years old. "; $str_information .= "The athlete is good in the following sports: <br/>"; $str_information .= "<table bgcolor=#00FF00 border = 2>"; foreach($this->sport as $one_sport){ $str_information .= "<tr><td>$one_sport</td></tr>"; } $str_information .= "</table>"; return $str_information; } } $person = new Person; $person->name = "Vitosh"; $person->city = "Sofia"; $person->age = 29; //still!:) echo $person->get_information(); echo "<hr>"; $athlete = new Athlete; $athlete->name = "Vityata"; $athlete->city = "Druzhba city"; $athlete->age = 28; $athlete->sport = array("WC3","WC3 - TFT", "Civilization III","Quake 3","AOE","Collin McRea Rally 2"); echo $athlete->get_information(); ?> |
Available also in GitHub.
Enjoy it!