php - интерфейсы и абстрактные классы?

программирование php ООП интерфейсы абстрактные классы

получается если это интерфейс, то метод можно вызвать вне класса, что есть public, а мне это не очень нужно, логичнее в таком случае использовать абстрактные классы?

Примечание:
и может ли абстрактный класс быть extended чего либо? напр. abstract class MyClass extends Useful

Примечание:
> методами-заглушками
это как? ну т.е. как обычные методы создать я догадываюсь, а вот чтобы "заглушки"?

Примечание:
а если в родителе свой конструктор, а в потомке свой, они не зависят друг от друга? т.е. будет выполняться по сути две разные задачи? (это уже не про абстракцию и интерфейсы).
Ответы:
Абстрактный класс в рамках PHP бессмысленен. Гораздо удобнее взамен этого создать обычный класс с методами-заглушками.
class exampl {
   function output() {
       die('метод должен переопределяться в дочернем классе');
   }
}
У вас небольшая путаница в голове. Для вызова методов не создавая объект можно использовать static. Интерфейс от абстракции отличается тем, что в родителе-интерфейсе описываются обычно только методы без их содержания, грубо говоря. А в абстрактном, как раз уже и публичные методы можно использовать. Это обобщенные отличия. Использования одного из них определяется задачей. Почитайте PHP 5 в подлиннике Котеров, Костарев
Абстрактный класс вещь отличная и нужная. Обычно его используют там где всему классу ненужно присваивать объект, PHP такие классы обрабатывает быстрее,
пример, у меня есть класс BaseController, он содержит базовые функции любого контроллера, любой контролер является его наследником, но сам по себе он негде не существует, отличный кандидат в абстрактные классы
#3
Будь то конструктор или другой метод, будет выполнен метод дочернего класса, если он присутствует. Если при запуске метода дочернего класса необходимо выполнить и тот код, который находится в методе родителя, то необходимо явно написать


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.