- Когда следует использовать
implement
илиextend
? - Каковы некоторые реальные примеры?
Правильно ли это?
Реализация представляется способом обеспечения того, что определенные методы существуют в классе и что эти вызовы функций методов правильно отформатированы. Реализация не способа передачи переменных или "настроек" в класс, хотя?
Ожидаемый сценарий реальной жизни: у меня есть платформа для электронной коммерции, в которой есть несколько классов оплаты, которые следуют одному и тому же дизайну. Когда новый класс оплаты должен быть добавлен, очень легко следовать определенному дизайну interface
, чтобы убедиться, что все биты и куски находятся с самого начала.
Расширение классов заставляет расширенный (дочерний?) класс наследовать все от своего родительского класса, кроме методов и переменных, объявленных как private
?
Ожидаемый сценарий реальной жизни: у меня есть один класс под названием sessions
с двумя дочерними классами с именем sessioncookies
и databasesessions
. sessioncookies
и databasesessions
вместе наследуют ряд взаимных опций конфигурации из своих родительских сеансов, что упрощает изменение конфигурации, чтобы повлиять на всевозможные возможные хранилища данных для посетителей.