class Person {
        private $name;

	public function __construct($name) {
	   $this->name = $name;
	}

	public function getName() {
	   return $this->name;
	}

	public function getTitle() {
	   return $this->getName()." the person";
	}

	public function sayHello() {
	   echo "Hello, I'm ".$this->getTitle()";
	}

	public function sayGoodbye() {
	   echo "Goodbye from ".self::getTitle()";
	}
}

class Geek extends Person {
	public function __construct($name) {
		parent::__construct($name);
	}

	public function getTitle() {
		return $this->getName()." the geek";
	}
}

$geekObj = new Geek("Ludwig");
$geekObj->sayHello();
$geekObj->sayGoodbye();

Advertisements