169 похожих чатов

То есть, интерфейс и абстрактный класс == абстрактный? они на

одном уровне и могут не наследовать методы?

14 ответов

45 просмотров

Наследование методов у интерфейса было бы странным

As-Lan Автор вопроса
As Lan
ну я имел ввиду про абстрактные классы

Вы запутали и себя и меня Я предлагаю почитать книжку Хотите посоветую прикольную ? Сам читал естессно

As-Lan Автор вопроса
Владимир Свешников
Вы запутали и себя и меня Я предлагаю почитать кни...

ну было бы неплохо, только не доку пхп пожалуйста, я там и читал про ооп

As Lan
ну было бы неплохо, только не доку пхп пожалуйста,...

Паттерны проектирования (2018) Автор: Эрик Фримен, Элизабет Фримен Переиздание Как по мне объясняет 2 в одном

Абстрактный класс мы не можем использовать напрямую. Только его конкретный класс наследник. Тогда система и заставит нас где-то метод определить.

As-Lan Автор вопроса
Дмитрий Елисеев
Абстрактный класс мы не можем использовать напряму...

нет же, я не про это) - Вот допустим вы создали Интерфейс парсера сайта ParserInterface.php, внутри вы создали метод parseUrl() - Теперь создаете абстрактный класс PornhubService.php который имплиментирует ParserInterface. Вопрос: почему абстрактный класс PornhubService может пренебречь правилами и не создавать внутри себя метод parseUrl() которого требует Интерфейс. Ведь все методы интерфейса должны быть описаны в дочерних классах

As Lan
нет же, я не про это) - Вот допустим вы создали Ин...

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

As-Lan Автор вопроса
Дмитрий Елисеев
Про это. У абстрактного класса обязательно будет н...

это то я знаю что заставит) вопрос почему?) ведь Абстрактный класс имплментирует Интерфейс)) может есть статья про это? в доках ПХП про это не упомянули, или я плохо смотрел

As Lan
это то я знаю что заставит) вопрос почему?) ведь А...

Потому что из абстрактного нельзя сделать объект через new. Он как полуфабрикат/запчасть, а не как полноценный класс.

As Lan
это то я знаю что заставит) вопрос почему?) ведь А...

interface A { function a() function b() } abstract class B imp A { } abstract class C extends B { function a() } class D extends C { function b() }

As-Lan Автор вопроса
Дмитрий Елисеев
Потому что из абстрактного нельзя сделать объект ч...

ааа, я поняяял, "не полноценный" значит)) в доках пишут "методы интерфейса должны быть реализованы в классах" - я просто докопался к словам получается)) извиняюсь что запарил вас))

Дмитрий Елисеев
interface A { function a() function b() } abs...

Суть правила в том, чтобы нельзя было создать объект без какого либо метода из интерфейса. Абстрактных классов может быть сколько угодно. Хоть с методами, хоть без. Создать объект можно только начиная с класса D. Поэтому правило только в нём начнёт проверять методы.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта