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

  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011
  • The Onion

    The Onion

    14 Mart 2006