Ai đó có thể giải thích những gì đang xảy ra ở đây?java casting với tham chiếu superclass
Giả sử Car
và Bike
là các lớp con của Vehicle
.
Dường như với tôi như tham chiếu Vehicle v
được truyền tới số Bike
. Tôi biết điều này là bất hợp pháp và thực sự trình biên dịch phun ra ... Car cannot be cast to Bike
.
Nhưng điều này không nên là Vehicle
không thể truyền tới Bike
? Xét cho cùng, Vehicle v
là tham chiếu Vehicle
.
public class Test {
public static void main(String[] args) {
Vehicle v = new Car();
Bike b = (Bike) v;
// some stuff
}
}
Bởi vì JVM biết rằng đó là một chiếc xe khi nó được ném ngoại lệ. –
Trình biên dịch không tách ra ngoại lệ. Mã này ném một ** thời gian chạy ** 'ClassCastException'. –
@Pregnant mẹ, xin vui lòng chấp nhận một câu trả lời nếu bạn có hài lòng với bất kỳ của họ. – Reddy