napriklad plky voci chybajucej viacnasobnej dedicnosti v jave
Vícenásobná dědičnost chybí v mnoha jazycích a nikde k tomu nemají plnohodnotné uspokojivé řešení.
Konstrukty kterým programátor nerozumí, tak je nemusí používat.
Vícenásobná dědičnost v PHP nechybí. Rozumný vývojář se jí prostě vyhne.
JJ jeji potreba je dosti sporna a pokud nekdy neco takoveho potrebujeme tak si ve vetsine pripadech clovek vystaci s kompozici. Napriklad jazyk D to resi elegantne:
module main;
import std.stdio;
struct Camera
{
void takePicture()
{
writeln("click");
}
}
class Phone
{
void call()
{
writeln("ring ring");
}
}
class CameraPhone : Phone
{
Camera camera;
alias camera this;
}
void main(string[] args)
{
auto phone = new CameraPhone();
phone.call();
phone.takePicture();
}
neceho podobneho jde v php taky dosahnout a to bud traitama:
<?php
trait TCamera
{
public function takePicture()
{
echo "click" . PHP_EOL;
}
}
trait TPhone
{
public function call()
{
echo "ring ring" . PHP_EOL;
}
}
class Camera
{
use TCamera;
}
class Phone
{
use TPhone;
}
class CameraPhone
{
use TCamera,TPhone;
}
$phone = new CameraPhone();
$phone->takePicture();
$phone->call();
nebo pres magicke metody __call, __callStatic,...