Sobes.tech
Junior

Was ist Type Casting in Java?

sobes.tech KI

Antwort von AI

Typumwandlung (Casting) in Java ist die Umwandlung eines Werts eines Datentyps in einen anderen Datentyp.

Arten der Typumwandlung:

  • Explizites (erklärtes) Casting: Wird vom Programmierer mit dem Operator (Typ) durchgeführt. Wird verwendet, um von einem "größeren" Typ zu einem "kleineren" zu konvertieren (z.B. von double zu int). Kann zu Datenverlust führen.
    // implizite Umwandlung (automatisch)
    int a = 10;
    double b = a; // int zu double
    
    // explizite Umwandlung (deklariert)
    double c = 10.5;
    int d = (int) c; // double zu int, d wird 10 sein
    
  • Implizite (automatische) Typumwandlung (Widening Conversion): Wird automatisch von der JVM durchgeführt, wenn von einem "kleineren" zu einem "größeren" Typ konvertiert wird (z.B. von int zu double). Ist sicher und führt nicht zu Datenverlust.
    int x = 10;
    double y = x; // int automatisch zu double konvertiert
    

Die Typumwandlung kann zwischen primitiven Typen oder zwischen Objekttypen in einer Vererbungs-Hierarchie erfolgen.

Bei der Objekt-Typumwandlung:

  • Upcasting: Konvertierung einer Subklasse zu ihrer Superklasse. Ist implizit und sicher.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Konvertierung einer Superklasse zu ihrer Subklasse. Erfordert eine explizite Umwandlung und kann ClassCastException zur Laufzeit auslösen, wenn das Objekt tatsächlich kein Instanz der Ziel-Subklasse ist.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - erfordert explizite Umwandlung und instanceof-Check
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // Jetzt können spezifische Methoden von Dog verwendet werden
    }