Xin lỗi tôi không thể lấy mã định dạng để làm việc trong một 'bình luận 'chỉ trong một' câu trả lời 'nhưng điều này là để đáp lại câu hỏi của akostadinov với Hendrik "điều này khác với câu trả lời của [Konstantin] như thế nào?"
Tôi đoán Hendrik đang cố truy cập hằng số từ các phương thức trong lớp kế thừa của mình & phụ thuộc vào nếu đó là một cá thể hoặc phương thức tĩnh. Nó có vẻ cư xử như bạn mong đợi trong một phương pháp thể hiện. Nhưng có lẽ hoặc có thể không phải là cách bạn mong đợi cho một phương pháp tĩnh. Ngay cả khi đó không phải là những gì Hendrik nghĩa, điều này có thể đáng chú ý:
Nếu bạn có các định nghĩa lớp chính xác như Konstantin, nhưng bạn thêm một phương pháp để loại A như thế này:
def self.print_const
puts CONST
end
Sau đó, bạn sẽ có được một cả hai lần:
A.print_const # prints A
B.print_const # prints A
Tuy nhiên, nếu bạn xác định các phương pháp A bằng cách tham khảo các lớp:
def self.print_const
puts self::CONST
end
Sau đó, bạn nhận được:
A.print_const # prints A
B.print_const # prints B
Hoàn hảo, cảm ơn rất nhiều! – Tom
Vì vậy ... điều này có nghĩa là không có cách nào để làm điều đó mà không thay đổi ở khắp mọi nơi trong lớp A sử dụng CONST? – nohat
Có. Tra cứu liên tục thường bị ràng buộc tại thời gian biên dịch. –