<?php
abstract class Person
{
protected $name;
public function __construct( $name )
{
$this->name = $name;
}
abstract public function speak();
}
class Adult extends Person
{
public function speak()
{
echo "Hello, my name is " . $this->name;
}
}
class Baby extends Person
{
public function speak()
{
echo "Goo goo ga ga";
}
}
$adult = new Adult( 'John' );
$baby = new Baby( 'Emma' );
$adult->speak();
$baby->speak();