Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public function func($a, $b = null)
{
if ($a ...
}
public function func()
{
if (func_get_arg()...
if (func_get_args()...
}
public int func(int a, int b){ }
public int func(int a){ }
public int func(double a, double b){ }
public function($a, $b = null)
{
if (is_int($a) && is_null($b)) { вторая функция из оригинала }
}
public int func(int a, int b){}public int func(int a){ }public int func(double a, double b){ }public function($a, $b = null) {if (is_int($a) && is_null($b)) { первая функция из оригинала }elseif (is_int($a) && is_int($b)) { вторая функция из оригинала }elseif (is_float($a) && is_float($b)) { третья функция из оригинала }else trigger_error('Bad usage', E_USER_ERROR);}«Множество сигнатур всех определенных для объекта операцией называют интерфейсом это го объекта.»
Приемы объектно-ориентированного проектирования. Паттерны проектирования
Гамма, Хелм, Джонсон, Влиссидес
Этот интерфейс будет определять общее поведение всех своих наследников
class PhpClass()
{
}
Но есть возможность четко контролировать интерфейсы классов, что чаще всего лучше (проверка на этапе компиляции).
Да в АС3 такая фигня тоже есть, и в яваскрипте наверняка тоже, это же классика ООП, неужели такие вещи, которые обучно ВУЗах преподают необходимо публиковать на хабре?
Сама же его суть заключается в том, что мы гарантируем себе, что все методы интерфейса будут вести себя «правильно» независимо от того, какой конкретно производный класс используется.
А тем временем в замке...
Что такое полиморфизм на самом деле. В PHP он тоже существует.