Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Casting er en mulighet en har i Java for å "endre" typen til et uttrykk. Notasjonen er (T) expr, hvor T er en type og expr er et uttrykk. En altså setter typen altså typen en ønsker i parentes foran et uttrykk og samlet sett får en et nytt uttrykk av angitt type. En kan selvsagt ikke velge T fritt, det må jo være en sammenheng mellom T og typen til expr. Effekten av utførelsen av casting-uttrykk og hva som er lov og ikke, kan deles i to tilfeller:

...

  • A a = new B(), går greit, siden uttrykket new B() gir en B som er en subklasse (arver fra) A
  • B b = new A(), går ikke greit, siden en A ikke er en B
  • G g1 = new A(), g2 = new B(), g3 = new C(), den første går ikke, siden en A ikke er en subklasse av (implementerer) G, mens de andre er greie, siden både B og C implementerer G
Spørsmålet i b) er hvilke av følgende uttrykk vil gi feil i editoren/ved kompilering (statiske typer) og hvorfor (anta at variablene ab og c er deklarert til å være av klassene AB og C):

...