Inheritance and Polymorphism Flashcards

1
Q

What is Inheritance?

A
  • ООП принцип
  • позволява създаването на ясна йерархия
  • наследява състоянието и поведението на родителския клас
  • наследниците могат да разширяват и изменят състоянието и поведението на родителския клас
  • “IS-A” отношения м/у родителя и наследника (напр. презозно средство и кола/самолет/влак)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the limitations of inheritance?

A
  • може да се наследи само един родителски клас (диамантен проблем)
  • tight coupling - подкласовете са тясно свързани с базовия клас, което прави промените по базовия клас по-трудни и рискови
  • сложност - много нива на наследяване могат да доведат до трудно разчитане на код и по-трудна поддръжка
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a superclass?

A

Това е родителски клас, който задава общо състояние и поведение, което може да бъде разширено от наследниците.

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

What is a subclass?

A

Това е клас, който наследява общото състояние и поведение от родителския клас.

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

What is polymorphism?

A
  • ООП принцип
  • дава възможност за създаване на много различни форми
  • референтния тип и типа на обекта могат да бъдат различни
  • наследниците могат да override-нат някои методи от родителя
  • класът може да бъде използван през базовия клас или интерфейс
  • позволява обектите от различни класове да бъдат третирани като обекти от общ клас (напр. цвете, дърво и храст са растения)
  • наследикът следва същия contract, но може да има различно поведение
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is static polymorphism?

A
  • method overloading (Compile-time)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is dynamic polymorphism?

A
  • method overriding (Run-time)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is method overloading?

A
  • методно препълване, което позволява създаването на методи с едно и също име, но различно поведение на база различни параметри и return тип
  • методите трябва да бъдат в един и същ клас
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is method overriding?

A
  • предоставя различна/специфична имплементация на метод от родителския клас
  • осъщестява се в класовете наследници
How well did you know this?
1
Not at all
2
3
4
5
Perfectly