Tôi có hai câu hỏi về mã nàyKhó hiểu "ghi đè lên một phương pháp riêng"
public class Override {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Override po = new Derived();
po.f();
}
}
class Derived extends Override {
public void f() {
System.out.println("public f()");
}
}
/*
* Output: private f()
*/// :~
1) Làm thế nào là hàm f có thể nhìn thấy trên tham chiếu của Override po;
2) Tại sao là đầu ra "f tin()"
Nhưng cách tham chiếu với đối tượng của phân lớp có thể gọi phương thức riêng của một lớp siêu ??? Đây có phải là một lỗi??? –
Không, đây không phải là lỗi, điều này là chính xác như nó sẽ làm việc. – Jesper
nhưng không phải là vi phạm các quy tắc thừa kế và ràng buộc muộn –