Tôi đang học java. Tôi có một nghi ngờ về thừa kế. Khi một lớp con mở rộng lớp cha và lớp cha có một phương thức tham chiếu đến một biến cá thể được khai báo trong cha mẹ. Nhưng lớp con dint ghi đè phương thức này và đã khai báo biến cá thể có cùng tên với cha mẹ. Trong trường hợp này, biến mẫu từ con sẽ được giới thiệu hoặc phụ huynh sẽ được giới thiệu. Dưới đây là đoạn mãGiá trị ghi đè kế thừa thừa kế Java
class parent {
int a;
parent() {
System.out.println("in parent");
a = 10;
}
void method() {
System.out.println(a);
}
}
class child extends parent {
int a;
child() {
System.out.println("in child");
a = 11;
}
}
public class Test {
public static void main(String args[]) throws IOException {
parent p1 = new child();
p1.method();
}
}
Kết quả tôi nhận được là
trong mẹ
trong con
Ai đó có thể xin vui lòng làm cho tôi hiểu tại sao dụ tầng lớp phụ huynh giới thiệu mình của biến a
và không phải là lớp con của a
.
Một nghi ngờ khác là, tôi đã hiểu cách ẩn phương thức, khi có một phương thức tĩnh trong lớp cha và lớp con cũng đã khai báo một phương thức tĩnh có cùng chữ ký. Ở đây ẩn nghĩa là gì? phương pháp nào bị ẩn? Nếu phương pháp cha mẹ của nó, bạn có thể vui lòng giải thích cho tôi?
Cảm ơn bạn trước.
Bạn có chắc là mã của bạn có biên dịch không? Bạn đã chạy mã của bạn chưa? –
Điều này không nên biên dịch, cha mẹ không có phương thức 'method()' –
Xin lỗi đã bị định dạng sai. đã cập nhật mã ngay bây giờ. – Mojoy