Использование абстракных классов, интерфейса и наследования в PHP

<?php

interface Drive
{
    public function drive();
}

abstract class Car implements Drive
{
    private $name;

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

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

class Mersedes extends Car
{

    public function drive()
    {
        return "I can drive";
    }
}

$car = new Mersedes("Mersedes");
echo $car->GetName().' and '.$car->drive();