Kласс - это шаблон кода, который используется для создания объектов.
Объект - экземпляр класса, или данные которые структурированы в соответсвии с шаблоном заданным в классе.
Свойства - специальные переменные объявленные в классе.
Методы (methods) - специальныен функции объявленные внутри класса. В отличии от свойств методы можно объявлять только в теле класса. По умолчанию, методы и свойства без объявления ключевого слова - будут public.
$this - псевдопеременная предоставляющая механизм обращения к экземпляру объекта.
-> - обращение к методу/свойству в контексте объекта
:: - обращение методу/свойству в контексте класса
parent - псевдопеременная для обращения к родительскому классу, модно использовать в любом методе который переопределяет свой эквивалент в родительском классе.
Наследование - механизм, посредством которого один или несколько классов можно получить из базового класса.
Управление доступом к классам:
Статические методы - static функции, используемые в контексте класса. Имеют доступ только к статическим свойствам. Ключевая особенность - доступны везде и нет необходимости создавать экземпляр класса.
self - псевдопеременная предоставляющая доступ к текущему классу.
Абстрактный класс - abctract, класс экземпляр которого нельзя создать. В нём определяется абстрактный метод(ы), которые которые будут реализованы в классах потомках. Это гарантирует что все классы потомки будут иметь свою реализацию абстрактного метода.
Интерфейс - interface, шаблон с помощью которого определяется функциональность без реализации.