OOP, Generics Flashcards
Что такое класс?
Разновидность типа данных в ООП, характеризуемый способом своего построения.
Логическая конструкция, структура.
Шаблон для построения объекта.
Пользовательский тип данных.
Действует согласно инкапсуляции, содержит переменные и методы.
Что такое объект?
Сущность в виртуальном пространстве, обладающая поведением, состоянием, свойствами, имеющая набор методов для изменения состояния.
Объекты принадлежат одному или нескольким классам.
Какие у объекта есть характеристики?
Состояние
Поведение
Идентичность (by hashcode())
Что такое метод с точки зрения ООП?
Это средство описания логики работы с данными
Что такое пакет в Java
Это механизм позволяющий организовывать Java классы и интерфейсы в пространстве имен.
Что такое конструктор по умолчанию?
Конструктор по умолчанию - создается компилятором, если в классе нет других конструкторов.
Возвращает ли конструктор какое-то значение?
Да, он возвращает ссылку на созданный объект. Потому и нельзя объявлять тип возвращаемого значения.
Может ли конструктор быть final?
Нет это ошибка компиляции.
Что такое наследование?
Это механизм, который позволяет экземпляру одного класса приобретать свойства и поведение другого класса.
Какой класс является предком всех классов в Java?
Object
Что такое полиморфизм?
Полиморфизм в ООП означает возможность применения одноименных методов с одинаковыми или различными наборами параметров в одном классе или в группе классов, связанных отношением наследования.
Что такое переопределение методов?
Это когда дочерний класс делает свою специфическую реализацию метода из родительского класса.
Что такое перегрузка(overload) метода?
Определение в одном классе двух и больше методов с одинаковым именем, но разной сигнатурой.
Чем отличается полиморфизм от переопределения и перегрузки?
Перегрузка и переопределение это частные случаи полиморфизма.
Можно ли изменить тип возвращаемого значения при перегрузке?
Нет это ошибка компиляции?
Что такое IS-A отношение в ООП?
Это отношение более известное как наследование. Преимуществом есть возможность повторного использования поведения. Например: мотоцикл это транспортное средство и машина это транспортное средство.
Что такое отношение HAS-A?
Это отношение известно как композиция или агрегация. Когда один объект полностью или частично владеет жизненным циклом другого объекта.
Почему нельзя переопределять статические методы?
Переопределение подразумевает выполнение метода Б при вызове метода А, если Б переопределяет А. Статичный вызов точно определяет, какой именно метод будет выполнен.
Можем ли перегрузить переопределенный метод?
Да, можем.
Что такое виртуальный метод? Какие методы в Java называются виртуальными?
Виртуальный метод - это метод который можно переопределить. В Java все методы виртуальные.
Что запретить переопределять метод (сделать его не виртуальным), нужно сделать его final.
Как можно изменить тип возвращаемого значения метода, при переопределении?
Позволяет только расширять тип.
Как запретить переопределять метод?
final
private
static
Можно ли переопределить или перегрузить main method?
main должен быть static, потому переопределять нельзя.
перегрузить можно
Что такое динамическое и статическое связывание?
Динамическое - тип объекта определяется во время выполнения.
Статическое - тип объекта определяется при компиляции.