Tôi đang gặp khó khăn khi gói đầu quanh các lớp lồng nhau không tĩnh trong Java. Hãy xem xét ví dụ sau, in "Bên trong" và sau đó là "Trẻ em".Java: Các lớp lồng nhau không tĩnh và instance.super()
class Outer {
class Inner {
Inner() { System.out.println("Inner"); }
}
}
public class Child extends Outer.Inner {
Child(Outer o) {
o.super();
System.out.println("Child");
}
public static void main(String args[]) {
new Child(new Outer());
}
}
Tôi hiểu rằng các trường hợp bên trong luôn phải được liên kết với trường hợp bên ngoài và trường hợp đó cũng áp dụng cho trẻ vì nó mở rộng bên trong. Câu hỏi của tôi là ý nghĩa của cú pháp o.super()
- tại sao nó gọi hàm dựng bên trong?
Tôi chỉ thấy một đơn giản super(args)
được sử dụng để gọi hàm tạo siêu lớp và super.method()
để gọi phiên bản siêu lớp của một phương thức ghi đè, nhưng không bao giờ có dạng nào đó ở dạng instance.super()
.
LOL ... điều này có thẻ 'câu hỏi phỏng vấn' là gì? – Cristian
Là một phần của một cuộc phỏng vấn cho một vị trí Java, tôi đã được yêu cầu hoàn thành một bài kiểm tra IKM; câu hỏi này là một hình thức đơn giản của một câu đố. – Kiv
@Kiv bạn có ví dụ về cách sử dụng thực tế trong cuộc sống không? – chepseskaf