Sự khác biệt giữa việc gọi super
và super()
là gì?
Sự khác biệt giữa việc gọi super
và super()
là gì?
Trong Ruby, từ khóa super
được sử dụng để gọi phương thức cùng tên từ lớp cha (superclass). Sự khác biệt chính giữa việc gọi super
và super()
nằm ở việc truyền tham số cho phương thức của lớp cha:
super
mà không có tham số nào đi kèm, Ruby sẽ tự động truyền tất cả các tham số mà phương thức con nhận được vào phương thức cùng tên của lớp chasuper()
với cặp dấu ngoặc đơn, bạn đang yêu cầu Ruby gọi phương thức của lớp cha mà không truyền bất kỳ tham số nào. Điều này hữu ích khi các tham số mà phương thức con nhận được không khớp với những gì phương thức của lớp cha mong đợisuper
khi bạn muốn phương thức của lớp cha nhận cùng một tham số mà phương thức con đã nhận.super()
khi phương thức của lớp cha không mong đợi tham số nào hoặc bạn muốn ghi đè hành vi của phương thức con mà không truyền tham số nàoclass Parent
def say(message)
p message
end
end
class Child < Parent
def say(me...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào