1- exception. Создаем класс который extends Exeption
создаем функцию которая throw этот класс и задает месседж
потом трак кетч и код
2- рекурсия. Если логически что то выполняет действие с самим собой (факториал, фибоначчи)
3 - интерфейс -как класс только с методами. Мы ничего не пишем. просто инициализируем метод. (только аргументы и тип даты). Рандомные классы имеют одни и те же методы
4 - абстрактные классы это классы которые только классы и ид них не сделать объект. Но атрибуты и методы должны быть.
абстрактые методы - имя метода. смысл
6 - можно extend только 1 класс, но интерфейсов бесконечно. в интерфейсе лучше свойства не писать.