dùng để chào tất cả,"Dynamic" Đúc trong Java
Tự hỏi nếu có bất kỳ hacker Java người có thể đầu mối cho tôi trong ít tại sao những điều sau đây không làm việc:
public class Parent {
public Parent copy() {
Parent aCopy = new Parent();
...
return aCopy;
}
}
public class ChildN extends Parent {
...
}
public class Driver {
public static void main(String[] args) {
ChildN orig = new ChildN();
...
ChildN copy = orig.getClass().cast(orig.copy());
}
}
Mã này là khá hạnh phúc để biên dịch, nhưng quyết định ném ClassCastException vào thời gian chạy D =
Chỉnh sửa: Whoah, trả lời rất nhanh. Cảm ơn các bạn! Vì vậy, có vẻ như tôi không thể downcast bằng cách sử dụng phương pháp này ... là có cách nào khác để làm downcasting trong Java? Tôi đã nghĩ về việc có mỗi lớp ChildN
ghi đè copy()
, nhưng không phải là nhiệt tình về việc thêm mã bản mẫu thêm vào.
Bạn có thể làm điều đó. Hãy xem bản chỉnh sửa của tôi. Tôi mặc dù bạn đã gặp khó khăn trong việc hiểu "đúc" ở vị trí đầu tiên. – OscarRyz