@oop_ru

Страница 254 из 785
da horsie
23.06.2017
20:01:55
по холиварам @it_holywars
я почистил офтопик :)

Сергей
24.06.2017
08:24:56
Ivan
24.06.2017
10:26:32
interface Product { public function buy(); } interface ProductFactory { public function create(): Product; } class Book implements Product { public function buy() { // implementation } } class BookFactory implements ProductFactory { public function create(): Book { return new Book(); } }

BookFactory::create не совместим с ProductFactory::create

Google
Ivan
24.06.2017
10:26:53
кто объяснит, почему это считатется несовместимым?

F01134H
24.06.2017
10:29:25
почему несовместимым

на первый взгляд все кажется логичным

Ivan
24.06.2017
10:30:20
в php так

Like
24.06.2017
10:31:01
на первый взгляд все кажется логичным
Интерфейс это жесткий контракт, ты чо

Sergey
24.06.2017
10:31:07
Потому что PHP не умеет ковариантность возвращаемых типов.

то есть ты не можешь "сузить" в наследнике возвращаемый тип

Like
24.06.2017
10:31:46
шта
Епт

Ivan
24.06.2017
10:31:47
то есть с точки зрения ООП они совместимы, верно?

Admin
ERROR: S client not available

Ivan
24.06.2017
10:31:53
это просто фишка php?

Google
F01134H
24.06.2017
10:32:13
Like
24.06.2017
10:32:18
то есть с точки зрения ООП они совместимы, верно?
Не везде есть интерфейсы) С точки зрения логики - да Фича )

F01134H
24.06.2017
10:32:42
с точки зрения пхп
в смысле нет тут

Sergey
24.06.2017
10:32:44
то есть с точки зрения ООП они совместимы, верно?
это с точки зрения типов надо смотреть, а не ООП.

Страница 254 из 785