F19 - Polymorfism och dynamisk bindning Flashcards

1
Q

Vad innebär polymorfism?

A

att olika objekt har gemensamma beteenden

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

Ge exempel på polymorfism

A
  • Metodöverskuggnig
  • Dynamisk bindning
  • Abstrakta klasser
  • Interface
  • Överlagring
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vilka klasser kan definieras som static?

A

Nästlade (inre) klasser

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

Vad är speciellt med statiska metoder?

A

Dessa kan anropas utan att ett objekt av klassen har skapats

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

Hur anropar man statiska metoder?

A

klassNamnet.metodNamnet( );

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

Vad tillhör en static metod till skillnad från “vanliga” metoder som inte är static?

A

En metod som är definierad som static tillhör klassen och inte objektet, övriga metoder har en kopia av sig själv i varje skapat objekt, medan static metoder inte har det

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

Vilka begränsningar har statiska metoder?

A
  • Kan inte anropa icke-statiska metoder

- Kan inte använda icke-statiska variabler

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

Hur kan nyckelordet final användas?

A
  • Klasser: för att förhindra arv
  • Metoder: för att förhindra metodöverskuggning
  • Variabler: för att skapa en konstant
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hur kan man förhindra arv?

A

Genom att definiera klassen med nyckelordet final

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

Hur kan man förhindra metodöverskuggning?

A

Genom att definiera metoden med nyckelordet final

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

Vad är en virtuell metod?

A

en metod som kan överskuggas

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

Behöver man definiera att en metod är virtuell?

A

Nej, metoder är virtuella by default i java

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

Hur tydliggör man att en metod är överskuggad?

A

Genom att skriva @Override ovanför metoden

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

Vad innebär överskuggning?

A

Överskuggning innebär att en subklass kan skriva egen implementation för en metod

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

Kan överskuggning ske i en subklass även om den berörda metoden har en implementation i superklassen?

A

Ja, sålänge metoden i superklassen inte är definierad med nyckelordet final

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

På vilket sätt är överskuggning polymorfism?

A

Eftersom metoden som körs beror på typen av objekt som gör anropet, detta bestämt under körning

17
Q

Om objekt av superklassen anropar en metod, och implementation finns i både superklassen och överskuggat i subklassen, vilken metod körs?

A

metoden i superklassen

18
Q

Om en objekt av subklassen anropar en metod som har implementation i superklassen och en överskuggning i subklassen, vilken metod körs?

A

den överskuggade metoden i subklassen

19
Q

vad är toString( )-metoden default beteende?

A

skriva ut

klassnamnet@hashcode

20
Q

vilket klass tillhör toString( )?(ej överlagrade eller överskuggade)

A

Object

21
Q

Vad kallas överskuggning på engelska?

A

Overriding

22
Q

Vad innebär överlagring?

A

att skriva metoder med olika signaturer, men samma namn

23
Q

Vad innebär en metods signatur?

A

metodnamn + metodparametrar

24
Q

Hur kan signaturerna skilja sig åt vid överlagring?

A

olika datatyper eller olika ordning på parametrar

25
Q

Vad menas med metoddefinition?

A

metodsignatur + metoden returtyp + ev modifierare

26
Q

vad händer om det enda som skiljer två metoder är returvärde?

A

kompileringsfel