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

  • AllYourNewsByMe

    AllYourNewsB

    18 Temmuz 2011
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008
  • TechBalance

    TechBalance

    12 HAZİRAN 2011