Полиморфизм — это не что иное, как перезапись функций унаследованных классов?

Вот код, который я беру из другого поста:
Является ли полиморфизм в PHP полиморфизмом?

class Animal {
var $name;
function __construct($name) {
$this->name = $name;
}
}

class Dog extends Animal {
function speak() {
return "Woof, woof!";
}
}

class Cat extends Animal {
function speak() {
return "Meow...";
}
}

$animals = array(new Dog('Skip'), new Cat('Snowball'));foreach($animals as $animal) {
print $animal->name . " says: " . $animal->speak() . '<br>';
}

-1

Решение

Полиморфизм означает, что отправителю стимула не нужно знать
класс получающего экземпляра. Получающий экземпляр может быть
произвольный класс.

(Разработка объектно-ориентированного программного обеспечения: подход, основанный на сценариях использования,
с.55)

В этом случае отправителем является оператор print, который вызывает $animal->name а также $animal->speak(), Экземпляр объекта может быть произвольного класса, который реализует атрибут name и метод speak в то время как все это все еще работает. Таким образом, по этому определению полиморфизм.

Или что вы подразумеваете под полиморфизмом? (У разных людей может быть разное понимание одного и того же слова)

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector