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

  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010
  • Tinkernut

    Tinkernut

    28 Aralık 2006
  • Tire Rack

    Tire Rack

    31 Mayıs 2007