public function LogSomething($message);
class Logger implements ILogger
public function LogSomething($message)
abstract function getowned();
protected function __construct($age, $logger) {
public function getvalue();
class pet extends animal implements insurable {
public function __construct($name,$age,$logger) {
parent::__construct($age,$logger);
public function getname() {
parent::$this->logger.LogSomething("something To Log");
public function getowned() {
public function getvalue() {
class house implements insurable {
public function getvalue() {