PHP КОВАРИАНТНОСТЬ И КОНТРАВАРИАНТНОСТЬ
В PHP ковариантность и контравариантность относятся к типам данных при наследовании классов. Ковариантность - это возможность возвращать из метода дочернего класса объект родительского класса, а контравариантность - это возможность передавать в метод дочернего класса объект наследника родительского класса.
Пример ковариантности:
class Animal { public function getSound(): AnimalSound { return new AnimalSound(); }}class Cat extends Animal { public function getSound(): AnimalSoundCat { return new AnimalSoundCat(); }}class AnimalSound {}class AnimalSoundCat extends AnimalSound {}
Пример контравариантности:
class Animal { public function setSound(AnimalSound $sound): void { // some logic }}class Cat extends Animal { public function setSound(AnimalSoundCat $sound): void { // some logic }}class AnimalSound {}class AnimalSoundCat extends AnimalSound {}
C#. Ковариантность и Контравариантность обобщений (Делегаты). Урок 62
Learn PHP 8 In Arabic 2022 - #047 - Function Variable Arguments List
Инвариантность, ковариантность и контравариантность на примере Python
C#. Ковариантность и контравариантность обобщений (Интерфейсы) Урок 61
Java. Ковариантность и контравариантность обобщенных типов на примере ArrayList.
Learn PHP 8 In Arabic 2022 - #048 - Function Training And Unpacking Arguments
Learn PHP 8 In Arabic 2022 - #024 - Increment And Decrement Operators
C# — ковариантность и контравариантность в обобщенных интерфейсах
Ковариантность, контрвариантность, инвариантность