F20 - Polymorfism fortsättning, abstrakta klasser, interface Flashcards

1
Q

Vilka är objektorienterad programmerings tre principer?

A
  1. Inkapsling
  2. Arv
  3. Polymorfism
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

När kan en abstrakt metod vara lämplig?

A

När alla subklasser måste implementera metoden

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

Hur definieras en abstrakt metod i superklassen?

A

public abstract metodNamn();

Inte { ] eller metodkropp.

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

Vilka krav ställs på klassen om man vill skriva abstrakta metoder?

A

att klassen också definieras som abstrakt

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

Hur skiljer sig abstrakta metoder från överskuggning?

A

vid abstrakta metoder tillhandahåller superklassen ingen implementation av metoden, vilket den gör vid överskuggning

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

Vad innebär bindning?

A

att koppla metodanropet till metodkroppen

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

Vad är abstrakta klasser en kombination av?

A

vanlig klass och interface

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

Vad skiljer en abstrakt klass från en konkret (vanligt) klass?

A

en abstrakt klass ska alltid ärvas och man kan därför inte skapa instanser av den

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

Vad är en konkretklass?

A

en klass som intet innhåller abstrakta metoder eller är en interface

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

Vad är ett interface?

A

ett interface är en rent abstrakt klass som helst saknar implementation

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

vad är default metoden i ett interface?

A

publika abstrakta metoder

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

hur funkar interface?

A

som ett konkrakt, alla klasser som implementerar interface går med på att de ska ha ett visst beteende

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

hur deklareras interface?

A

med nyckelordet “interface” istället för “klass”, t ex

public interface namn{
}

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

kan metoder i ett interface någonsin innehålla implementation?

A

ja om metoden inte är abstrakt

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

vilka regler finns för interface?

A
  1. alla metoder är implicit public och abstract oavsett om nyckelorden anges
  2. instantsvariabler blir implicit public static final, eftersom endast konstanter är tillåtna som variabler
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Kan ett interface implementera ett annat interface?

A

nja, ett arv kan implementera ett annat interface men det görs med nyckelordet extends

17
Q

Vad skiljer generalisering av interface från arv?

A

ett interface kan inte ärvas av en vanlig klass, utan används med nyckelordet “implements” iställer för arvets “extends”

18
Q

vad innebär nyckelordet implements?

A

att en klass implementerar ett interface och därmed binder till att tillhandahåll implementation (kropp) till samtliga metoder som är definierade i interfacet

19
Q

vilka krav ställer interfacet på klassen som implementerar den?

A

att klassen skriver kod till samtliga metoder i interfacet

20
Q

Vilka fördelar finns med interface?

A
  1. olika klasser utan koppling får samma beteende (polymorfism)
  2. sära på implementation och specifikation (inkapsling)
  3. förberedda applikation för at bygga på nya komponenter och objekt som funkar på samma sätt
  4. flexibel kod
21
Q

hur skriver man om en klass både ärver en superklass och ärver ett eller flera interface?

A

först definiera superklassen, sedan implementera interface och ifall det är flera interface separera dem med “ , “

22
Q

är multipel ärvning tillåtet för interface?

A

ja, med nyckelordet extends och ett kommatecken(‘ , ‘) mellan varje interface

23
Q

Vad har abstrakt class och interface gemensamt?

A
  • kan inte skapa objekt
  • ## innehåller publika abstrakta metoder
24
Q

hur skiljer sig abstrakta klasser och interface åt?

A
  • interface används för TOTAL abstraktion medan abstrakta klassen enbart för delvis abstraktion
  • metoder i interfacet saknar implementation (kropp) men metoder i abstrakta klassen kan ha viss implementetation
  • abstrakta klasser är till för att ärvas och kan bara ärva en konkret -eller abstrakt klass medan interface inte kan ärva konkreta klasser