Полиморфизъм с PHP

Какво е полиморфизъм?

Общото определение е следното: Възможността на даден обект да съществува в различни форми.

В частност при програмирането термина е следния: Полиморфизмът е шаблон в обектно ориентираното програмиране, при който класовете имат различна функционалност, но споделят един и същи интерфейс.


<?php interface Shape { public function calcArea(); } class Circle implements Shape { private $radius; public function __construct($radius) { $this->radius = $radius;
    }

    public function calcArea()
    {
        return $this->radius * $this->radius * pi();
    }
}

class Rectangle implements Shape
{
    private $width;
    private $height;

    public function __construct($width, $height)
    {
        $this->width  = $width;
        $this->height = $height;
    }

    public function calcArea()
    {
        return $this->width * $this->height;
    }
}

$circ = new Circle(2);
$rect = new Rectangle(3,4);

echo $circ->calcArea();
echo '
';
echo $rect->calcArea();

// 12.566370614359
// 12

От примера правим следният извод: Независимо, че смятаме две различни площи на два различни обекта (кръг и правоъгълник), то наследяването на интерфейса не пречи на резултата.

Advertisements

Give your opinion

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s