10. Meer abstractietechnieken Flashcards

1
Q

Wat is een ‘abstracte klasse’?

A

Een klasse die niet bedoeld is om er instanties van te maken, maar enkel als superklasse voor andere klassen dienst doet.

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

Wat is een ‘abstracte methode’?

A

Een definitie van een methode die bestaat tuit een hearder, maar geen body.

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

Wat is ‘meervoudige overerving’?

A

De situatie waarin een klasse van meer dan één onmiddelijke superklasse erft.

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

Wat is een ‘interface’?

A

Een specificatie van een type (typenaam en een stel methodes) die geen implementatie voor de methodes definieert.

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

Waarvoor staat ‘abstract’?

A

Het sleutelwoord dat wordt gebruikt om een abstracte methode of klasse aan te duiden.

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

Wat is een ‘concrete klasse’?

A

Een klasse die niet abstract is.

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

Waarvoor staat ‘implements’?

A

Het sleutelwoord dat gebruikt wordt in de header van een klasse of een interface om aan te geven dat het corresponderende type een subtype is van het type dat bij een opgegeven interface hoort.

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

Welke gevolgen heeft het abstract definiëren van een klasse?

A
  • Van abstracte klassen kunnen geen instanties worden gemaakt.
  • Alleen abstracte klassen kunnen abstracte methodes hebben.
  • Abstracte klassen met abstracte methodes zorgen ervoor dat concrete subklassen de abstracte methodes moeten overschrijven.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Kunnen velden (variabelen) van een superklasse door een subklasse worden overgeschreven ?

A

NEE

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

Som de belangrijke kenmerken op van een interface.

A
  • In de header van de declaratie wordt het sleutelwoord ‘interface’ gebruikt, in plaats van ‘class’.
  • Alle methodes in een interface zijn abstract; de methodes mogen geen body hebben. Het sleutelwoord ‘abstract’ is niet nodig.
  • Alle methodeheaders in een interface hebben publieke zichtbaarheid, dus is het sleutelwoord ‘public’ niet nodig.
  • In een interface zijn uitsluitend publieke constante klassenvelden (‘static’ en ‘final’) toegestaan. Dus mogen de sleutelwoorden ‘public’, ‘static’ en ‘final’ worden weggelaten.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wat zijn de twee grote voordelen van overerving?

A
  • De subklasse erft de code (implementaties van methodes en velden) van de superklasse. Daardoor kunnen we bestaande code opnieuw gebruiken en duplicatie van code voorkomen. (codeovererving)
  • De subklasse wordt een subtype van de superklasse. Daardoor zijn polymorfe variabelen en methodeaanroepen mogelijk. Met andere woorden, door overerving kunnen we verschillende speciale gevallen van objecten (instanties van subklassen) uniform behandelen (als instanties van het supertype). (subtypering)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Waarom verdienen ‘interfaces’ onze voorkeur boven ‘abstracte klassen’ als we kunnen kiezen?

A

Als we een type als abstracte klasse leveren, kunnen de subklassen geen andere klassen uitbreiden. Omdat interfaces meervoudige overerving toestaan, creëert het gebruik van een interface niet een dergelijke restrictie. Dus leidt het gebruik interfaces tot een meer flexibele en uitbreidbare structuur.

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