Java - Hãy đưa ra kết luận đoạn chương trình cho sẵn có chạy được hay không và giải thích.
Hãy đưa ra kết luận đoạn chương trình cho sẵn dưới đây có chạy được hay không và giải thích. Sau đó sử dụng Eclipse để kiểm tra kết quả của đoạn chương trình đó.
package viduoverloading;
public class X {
void calculate(int a, int b) {
System.out.println("Đây là lớp X.");
}
}
package viduoverloading;
public class Y extends X {
@Override
void calculate(int a, int b) {
System.out.println("Đây là lớp Y.");
}
}
package viduoverloading;
public class Z extends Y {
@Override
void calculate(int a, int b) {
System.out.println("Đây là lớp Z.");
}
}
package viduoverloading;
public class MainClass {
public static void main(String[] args) {
X x = new Y();
x.calculate(10, 20);
Y y = (Y) x;
y.calculate(50, 100);
Z z = (Z) y;
z.calculate(100, 200);
}
}
Bài giải
-------------------- ######## --------------------
Trong đoạn chương trình trên, chúng ta thấy trình biên dịch không hề báo lỗi trong quá trình chúng ta code nhưng khi chúng ta thực thi chương trình thì sẽ có lỗi xảy ra ở dòng code: Z z = (Z) y; trong lớp MainClass. Lỗi này là do khi chúng ta tiến hành ép kiểu tường minh từ y về z thì lúc này trình biên dịch vẫn thấy có lý vì chúng có quan hệ cha con. Nhưng khi thực thi thì y vốn dĩ không biết z là gì nên không thể thực hiện việc ép kiểu được.

Kết quả biên dịch chương trình sử dụng Eclipse sẽ minh họa điều này:
Câu hỏi thường gặp liên quan:
- Java - Liệt kê sự khác nhau giữa overriding và overloading.
- Java - Liệt kê những trường hợp không phải nạp chồng phương thức.
- Java - Chúng ta có thể nạp chồng phương thức main() được không?
- Java - Hãy đưa ra kết quả sau khi biên dịch đoạn chương trình cho sẵn.
- Java - Hãy đưa ra kết luận đoạn chương trình cho sẵn có chạy được hay không và giải thích.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng