2010-07-25 5 views

Répondre

9

Vous pouvez utiliser l'opérateur <:

B < A sera vrai, si B est une sous-classe de A.

0

Vous pouvez trouver toutes les définitions de méthode pour Ruby Objects en ligne.

La méthode la plus proche serait is_a? ou kind_of?, mais lisez la documentation pour vous assurer qu'ils correspondent exactement à vos besoins.

1

Dans la classe Ruby Object a une méthode kind_of? qui fait ce que vous voulez. Ceci est également aliasé à is_a?:

module M; end 
class A 
    include M 
end 
class B < A; end 
class C < B; end 
b = B.new 
b.kind_of? A #=> true 
b.is_of? B  #=> true 
b.kind_of? C #=> false 
b.kind_of? M #=> true 

En outre, la classe Class a une méthode superclass:

>> B.superclass 
=> A 

Notez que vous pouvez savoir quelles sont les méthodes tout objet prend en charge en lui demandant:

B.methods.sort 

La sortie de cette commande aurait inclus le kind_of?/is_a?/superclass méthodes.

Questions connexes