Экзамен ООП | Блок 4 Flashcards

1
Q

Что такое переопределение метода?

A

Переопределение метода - это когда подкласс определяет нестатический метод с такой же сигнатурой как у суперкласса.

Для того, чтобы убедиться, что метод переопределен, используют аннотацию ==@Override==, которая вызывает ошибку компиляции/интерпретации, если метод не найден в суперклассе.

Решение о вызове переопределенного метода принимается на этапе выполнения программы при помощи т.н. позднего связывания. Вызывается метод из класса, на который ссылается переменная.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Можно ли переопределить статический метод?

A

Переопределять можно только нестатический метод. Статический метод можно скрыть.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое сокрытие метода?

A

Сокрытие метода - это когда подкласс определяет статический метод с такой же сигнатурой как у суперкласса.

Решение о том, какой метод будет вызван - из суперкласса или сокрытый в подклассе - принимается на этапе компиляции, используется т.н. раннее связывание. Вызывается метод из класса, объявленного в типе переменной.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое виртуальная функция и используются ли они в Java?

A

Виртуальная функция - это любой метод, который может быть переопределен в подклассе, то есть использован в механизмах Полиморфизма.

В Java почти все нестатические методы (кроме private и final) являются виртуальными функциями.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое перегрузка метода?

A

Перегрузкой метода называется определение в классе метода с тем же именем, но отличающимся количеством, порядком или типом параметров. То есть методы должны быть определены с различной сигнатурой метода.

Перегружать можно и конструкторы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Можно ли изменить тип возвращаемых данных при перегрузке метода?

A

Тип возвращаемых данных не входит в сигнатуру метода, поэтому только изменение типа возвращаемых данных не приведет в перегрузке метода. Но изменить тип возвращаемых данных вместе с сигнатурой возможно - такой метод будет считаться перегруженным.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly