Chapter 7 Наследование Flashcards

1
Q

Имеет ли суперкласс доступ к членам подкласса?

A

Нет, не имеет. Суперклассу ничего не известно о существовании подклассов. (При этом переменная типа суперкласса может ссылаться на объекты подклассов.)

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

Имеет ли подкласс доступ к членам суперкласса?

A

Подклассы действительно могут обращаться ко всем членам суперкласса, кроме тех, которые объявлены как закрытые (private).

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

Как предотвратить обращение к членам суперкласса из подкласса?

A

Чтобы предотвратить доступ к членам суперкласса из подкласса, эти члены следует объявить как закрытые (private).

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

Опишите назначение и два варианта использования ключевого слова super.

A

Ключевое слово super используется в двух случаях. Во-первых, с его помощью вызывается конструктор суперкласса. В этом случае общая форма вызова имеет следующий вид:
suреr ( список_параметров ) ;
И во-вторых, это ключевое слово обеспечивает доступ к членам суперкласса. Ниже приведена общая форма такого доступа:
suреr.член_класса

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

Допустим , имеется следующая иерархия классов.
class Alpha { . . .
class Beta extends Alpha
Class Gama extends Beta
В каком порядке вызываются конструкторы этих классов при создании объекта класса Gama?

A

Конструкторы всегда вызываются в порядке наследования. Таким образом, при создании экзем пляра класса Gama сначала будет вызван конструктор Alpha, затем Beta и наконец Gama .

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
7
Q

Что такое абстрактный класс?

A

Абстрактны м называется такой класс, который содержит хотя бы один абстрактный метод.

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

Как предотвратить переопределение метода и наследование класса?

A

Для того чтобы метод нельзя было переопределить, его нужно объявить как
final . И для того чтобы предотвратить наследование от класса, его следует объявить как final .

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

Объясните, каким образом механизмы наследования, переопределения методов и абстрактные классы используются для поддержки полиморфизма.

A

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

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

Какой касс является суперклассом для всех остальных классов?

A

Класс Object

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

Класс, который содержит хотя бы один абстрактный метод, должен быть объявлен абстрактным. Верно или не верно?

A

Верно

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

Какое ключевое слово следует использовать для создания именованной константы?

A

final. Если имени переменной предшествует спецификация final, то значение этой переменной не может быть изменено на протяжении всего времени выполнения программы. Очевидно, что подобным переменным нужно присваивать начальные значения.

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