Tôi muốn kiểm tra xem một lớp có kế thừa từ một lớp khác hay không, nhưng dường như không tồn tại một phương thức cho lớp đó.Kiểm tra xem lớp Ruby là lớp con của lớp khác
class A
end
class B < A
end
B.is_a? A
=> false
B.superclass == A
=> true
Một thực hiện tầm thường của những gì tôi muốn sẽ là:
class Class
def is_subclass_of?(clazz)
return true if superclass == clazz
return false if self == Object
superclass.is_subclass_of?(clazz)
end
end
nhưng tôi sẽ mong đợi điều này để tồn tại.
'A.class # => Class'. Đây là lý do tại sao 'B.is_a? A' trả về false. – Wen
Điều gì về 'loại_of? ' – akostadinov
' kind_of? 'Kiểm tra xem một đối tượng là một _instance_ của một lớp. Không cho dù đối tượng kế thừa từ một lớp. – Confusion