Экзамен ООП | Блок 4 Flashcards
Что такое переопределение метода?
Переопределение метода - это когда подкласс определяет нестатический метод с такой же сигнатурой как у суперкласса.
Для того, чтобы убедиться, что метод переопределен, используют аннотацию ==@Override==, которая вызывает ошибку компиляции/интерпретации, если метод не найден в суперклассе.
Решение о вызове переопределенного метода принимается на этапе выполнения программы при помощи т.н. позднего связывания. Вызывается метод из класса, на который ссылается переменная.
Можно ли переопределить статический метод?
Переопределять можно только нестатический метод. Статический метод можно скрыть.
Что такое сокрытие метода?
Сокрытие метода - это когда подкласс определяет статический метод с такой же сигнатурой как у суперкласса.
Решение о том, какой метод будет вызван - из суперкласса или сокрытый в подклассе - принимается на этапе компиляции, используется т.н. раннее связывание. Вызывается метод из класса, объявленного в типе переменной.
Что такое виртуальная функция и используются ли они в Java?
Виртуальная функция - это любой метод, который может быть переопределен в подклассе, то есть использован в механизмах Полиморфизма.
В Java почти все нестатические методы (кроме private и final) являются виртуальными функциями.
Что такое перегрузка метода?
Перегрузкой метода называется определение в классе метода с тем же именем, но отличающимся количеством, порядком или типом параметров. То есть методы должны быть определены с различной сигнатурой метода.
Перегружать можно и конструкторы.
Можно ли изменить тип возвращаемых данных при перегрузке метода?
Тип возвращаемых данных не входит в сигнатуру метода, поэтому только изменение типа возвращаемых данных не приведет в перегрузке метода. Но изменить тип возвращаемых данных вместе с сигнатурой возможно - такой метод будет считаться перегруженным.