...
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 a, b og c er deklarert til å være av klassene A, B og C):
...