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

1
Q

В чем польза наследования?

A

Наследование позволяет использовать повторно код и расширять существующие классы.

Наследующий класс получает все публичные свойства и методы родительского класса.

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

Для чего используется ключевое слово @override

Напиши пример кода родительского и класса-наследника.

A

Позволяет переопределять методы родительского класса.

Полезно, если ты хочешь изменить поведение метода.

class Animal {
void makeSound() {
print(‘Animal makes a sound’);
}
}

class Dog extends Animal {
@override
void makeSound() {
print(‘Dog barks instead’);
}
}

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

Расскажи про конструкторы в наследовании

A

Конструкторы не наследуются.

Но дочерние классы могут вызывать конструктор родителя с помощью super.

class Animal {
String name;
Animal(this.name);
}

class Dog extends Animal {
Dog(String name) : super(name);
}

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

Зачем конструктору класса Dog вызывать конструктор класса Animal?

Dog(String name) : super(name)

A
  1. Чтобы установить значение свойства name
  2. Наследование состояния:

Свойства, определённые в базовом классе, могут быть необходимы для корректной работы производного класса.

Вызывая конструктор Animal, мы обеспечиваем, что все необходимые поля и состояние базового класса инициализируются.

Слово “инициализируются” в программировании означает “устанавливаются” или “присваиваются начальные значения” переменным или свойствам. Это процесс, при котором переменные получают значения, которые будут использоваться в программе.

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

Что такое Миксины и для чего они нужны?

A

Это специальные классы, которые используются, чтобы унаследовать методы и поля от НЕСКОЛЬКИХ классов.

Миксины добавляют функциональность без наследования.

Их можно добавлять в клачч через ключевое слово with.

mixin Swimmable {
void swim() {
print(‘Swimming’);
}
}

class Dog extends Animal with Swimmable {}

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

Что значит super, как можно его использовать?

A
  • вызывать конструктор родителя
  • обращаться к методам родителя внутри дочерних классов

class Animal {
void makeSound() {
print(‘Animal sound’);
}
}

class Dog extends Animal {
@override
void makeSound() {
super.makeSound(); // Вызов родительского метода
print(‘Dog barks’);
}
}

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