ООП 2 Flashcards
класс с единственным private конструктором
Невозможно создать объект класса у которого единственный private конструктор за пределами класса. Поэтому нельзя унаследоваться от такого класса. При попытке создать объект класса или унаследоваться будет выдаваться ошибка
this
используется для обращения к текущему классу
super
используется для обращения к родительскому классу
сигнатура метода
имя метода плюс параметры (причем порядок параметров имеет значение)
что не входит в сигнатуру метода
модификаторы, возвращаемое значение, бросаемые им исключения
перегруженные методы
несколько методов с одинаковыми именами, но разными параметрами
могут ли нестатические методы перегрузить статические?
Да.
Это будут просто два разных метода для программы.
Статический будет доступен по имени класса.
переопределенный метод
Метод в классе-наследнике, совпадающий по сигнатуре с методом из родительского класса.
Переопределить родительский статический метод нельзя
Может ли метод принимать разное количество параметров одного типа (аргументы переменной длины)?
Да.
Запись имеет вид method(type … val).
Например public void method(String … strings), где strings это массив
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка. Но можно сузить возвращаемое значение, если они совместимы.