Java Klasse Object

Diskutiere Java Klasse Object im Java Basics - Anfänger-Themen Bereich.
M

Moritz1234

Hallo, ich hätte eine Frage zu dem Code schnipsel:

Object x;
x = new Klasse();
x=2;

Object ist ja die Oberklasse aller klassen, d.h alle Klassen erben von Object, weshlab der obere code problemos funktionieren würde.
Nennt man das dann aber einen Downcast ? Oder wie erklärt man in Worten was da passiert? Und bei der zuweisung von 2, das nennt man Boxing oder? Da ein ein Referenztyp nur referenzen speichern kann, wird die 2 gekapselt in ein Wrapper Objekt, liege ich hier richtig? Danke im Voraus!
 
C

CSHW89

Nennt man das dann aber einen Downcast ?
Dies nennt man Upcast bzw. Upcasting, da du die Klassenhierarchie nach oben kletterst. Object schwebt über allen Klassen, also ganz oben. Dowcasting wäre z.B. so was:
Java:
Object a = new Klasse()
Klasse x;
x = (Klasse) a;
x=2;
Downcasting geht also nur mit einem explizitem Cast, der zur Laufzeit schief gehen kann. (Edit: Streng genommen, ist das kein Downcasting, da nach dem explizitem Cast ein Objekt der Klasse "Klasse" einer Variablen des Typs "Klasse" zugeordnet wird. Downcasting ist in Java also nicht erlaubt.)

nd bei der zuweisung von 2, das nennt man Boxing oder? Da ein ein Referenztyp nur referenzen speichern kann, wird die 2 gekapselt in ein Wrapper Objekt, liege ich hier richtig? Danke im Voraus!
Das ist korrekt.
 
A

affot

Ist das wirklich ein Upcast? Ich hätte das jetzt eher mit nein beantwortet und gesagt ein Upcast in diesem Fall wäre:
Code:
Object y = (Object)x;
Aber ist nach der Definition schon die Deklaration Supertyp x = new Subtyp() wirklich auch schon ein Upcast?

(Die Bedeutung ist mir klar, es geht mir nur ums Wording)
 
mihe7

mihe7

Ich würde das spontan mal so definieren:

Gegeben seien Typen T und T' mit T != T', außerdem eine Instanz t von T. Kann man nun t wie eine Instanz von T' behandeln, liegt
1. ein Upcast vor, wenn T' Superklasse von T ist
2. ein Downcast vor, wenn T' Subklasse von T ist.

Dass in Java der Upcast implizit erfolgt, ändert daran m. E. nichts.
 
Thema: 

Java Klasse Object

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben