SORU
19 Aralık 2008, Cuma


Java Downcasting

Upcasting Java, ancak bir derleme hatası verir downcasting izin verilir.

Derleme hatası dökme ekleyerek kaldırılabilir ama yine de zamanında kıracak.

Eğer zamanında idam edilemez eğer Java verir neden bu durumda downcasting?
Bu kavram için herhangi bir pratik kullanımı var mı?

public class demo {
  public static void main(String a[]) {
      B b = (B) new A(); // compiles with the cast, 
                         // but runtime exception - java.lang.ClassCastException
  }
}

class A {
  public void draw() {
    System.out.println("1");
  }

  public void draw1() {
    System.out.println("2");
  }
}

class B extends A {
  public void draw() {
    System.out.println("3");
  }
  public void draw2() {
    System.out.println("4");
  }
}

CEVAP
19 Aralık 2008, Cuma


Downcasting çalışma zamanında suceeds olasılığı vardır izin:

Object o = getSomeObject(),
String s = (String) o; // this is allowed because o could reference a String

Bazı durumlarda bu başarılı olmayacaktır:

Object o = new Object();
String s = (String) o; // this will fail at runtime, because o doesn't reference a String

Diğerleri çalışacak:

Object o = "a String";
String s = (String) o; // this will work, since o references a String

Bazı atmalarını unutmayın hiç başarılı olamayacaklar çünkü derleme zamanında verilmeyen, olacaktır:

Integer i = getSomeInteger();
String s = (String) i; // the compiler will not allow this, since i can never reference a String.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • lissaandbeauty

    lissaandbeau

    24 Aralık 2011
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013