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

  • bashirsultani

    bashirsultan

    22 Mart 2010
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010
  • SRC RECORDS

    SRC RECORDS

    2 EKİM 2006