tôi đã kịch bản sau đây:Java: Sử dụng phương pháp lớp cha để truy cập lớp con biến
public class A {
private int x = 5;
public void print()
{
System.out.println(x);
}
}
public class B extends A {
private int x = 10;
/*public void print()
{
System.out.println(x);
}*/
public static void main(String[] args) {
B b = new B();
b.print();
}
}
On thi mã, đầu ra là: 5.
Làm thế nào để truy cập vào các lớp con (B) biến (x) thông qua phương thức lớp cha?
Điều này có thể được thực hiện mà không cần ghi đè phương thức print() (tức là bỏ ghi chú trong B)?
[này rất quan trọng bởi vì về ghi đè chúng ta sẽ phải viết lại toàn bộ mã cho hàm print() phương pháp một lần nữa]
EDITED
More Làm rõ: -
- Động cơ của câu hỏi là sử dụng giá trị của một biến riêng tư của lớp con từ phương thức lớp cha của nó. Điều này không yêu cầu thay đổi giá trị của biến riêng tư của lớp cha để đạt được kết quả mong muốn.
- Câu trả lời được đăng ở đây, mặc dù đã dẫn tôi đến câu trả lời mong muốn của tôi, mà tôi đã đăng bên dưới.
(Cảm ơn tất cả thời gian và giúp đỡ của bạn)
Khi bạn muốn in biến B 'x', bạn có ý định' x' khác với 'x' của A hay chúng giống nhau không? –
@WeiHao từ mã rõ ràng là 'x' trong' A' là 5, một trong 'B' là 10. Anh ta muốn' B.print() 'để xuất 10, bởi vì anh ta không hạnh phúc với một đầu ra của 5. Vì vậy, ông hy vọng họ sẽ khác nhau. –
@Jayant Nó không phải về cha mẹ không có thông tin, nó không. vấn đề là giá trị của 'x' không bị ghi đè trong quá trình tạo' B'. –