Gửi thư bằng cách sử dụng super
cũng giống như gửi thư đến self
, nhưng sử dụng rõ ràng cách triển khai phương thức của lớp cha. Nhưng lớp của bạn có thể không thực hiện chính phương thức -class
, vì vậy bạn đã thừa kế việc triển khai -class
từ lớp cha của bạn rồi.
Thực tế, có thể bạn đang thừa kế việc thực hiện NSObject
-class
(ngay cả khi NSObject
không phải là siêu lớp trực tiếp của bạn; -class
không phải là phương pháp thường xuyên bị ghi đè). Và việc triển khai mặc định chỉ trả về nội dung của con trỏ isa
của đối tượng, cho bạn biết số Class
là gì.
Nói cách khác, điều quan trọng là phải nhận ra rằng việc gọi super
không biến đổi hoàn toàn đối tượng của bạn thành một thể hiện của siêu lớp; nó chỉ chạy mã superclass 'cho phương thức đó. Nếu có bất kỳ sự mâu thuẫn nào xảy ra trong mã đó, nó vẫn thấy đối tượng của bạn như là một thể hiện của bất kỳ lớp nào mà nó bắt đầu.
Tôi không biết Obj-C, nhưng điều đó có mùi giống như các phương pháp ảo cho tôi –
Xem thêm: [Đang gọi siêu trong một danh mục giống như gọi nó trong một phân lớp?] (Http://stackoverflow.com/ q/6168058) –