ООП 4 Flashcards
Абстрактный класс
класс, на основе которого не могут создаваться объекты
Абстрактный метод
Метод, который не имеет реализации. Если в классе есть хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
ключевое слово static
Метод или поле класса принадлежат не объекту, а классу.
Т.е. доступ можно будет получить и не создавая объекта класса.
Поля помеченные static инициализируются при инициализации класса.
ограничение статических методов
Статические методы:
- могут вызывать только другие статические методы.
- должны осуществлять доступ только к статическим переменным.
- не могут ссылаться на члены типа this или super.
Статический метод можно перегрузить, но нельзя переопределить.
статический класс
Это вложенный класс, который может обращаться только к статическим полям обертывающего его класса, в том числе и приватным.
Доступ к нестатическим полям обрамляющего класса может быть осуществлен только через ссылку на экземпляр обрамляющего объекта.
К классу высшего уровня модификатор static неприменим.
ключевое слово final
Для класса.
- Класс помеченный при помощи final не может иметь наследников.
Для метода.
- Метод помеченный при помощи final не может быть переопределен в классах наследниках.
Для поля.
- Поле помеченное при помощи слова final не может изменить свое значение после инициализации.
Для метода.
- Значение локальных переменных, а так же параметров метода помеченных при помощи слова final не могут быть изменены после присвоения.
интерфейс
Полностью абстрактный класс.
Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов (с определёнными исключениями).
модификаторы интерфейсов по умолчанию
Поля интерфейса автоматически являются public static final.
Все методы неявно объявляются как public.
методы интерфейсов
Абстрактные методы
Default-методы
Статические методы
Приватные методы
отличие абстрактного класса от интерфейса
- Наследование (Единственное | Множественное )
- Поля (Любые | Только public static final)
- Методы (Любые | Abstract, default, static, private)
- Модификаторы методов (Любые | public / private)
- Конструкторы (Да | Нет)
- Использование в лямбдах (Нет | Да)