instance method
Class#superclass
() -> ::Class?
class.superclass → a_super_class or nil
object.c
View on GitHub ↗
VALUE
rb_class_superclass(VALUE klass)
{
RUBY_ASSERT(RB_TYPE_P(klass, T_CLASS));
VALUE *superclasses = RCLASS_SUPERCLASSES(klass);
size_t superclasses_depth = RCLASS_SUPERCLASS_DEPTH(klass);
if (klass == rb_cBasicObject) return Qnil;
if (!superclasses) {
RUBY_ASSERT(!RCLASS_SUPER(klass));
rb_raise(rb_eTypeError, "uninitialized class");
}
if (!superclasses_depth) {
return Qnil;
}
else {
VALUE super = superclasses[superclasses_depth - 1];
RUBY_ASSERT(RB_TYPE_P(super, T_CLASS));
return super;
}
}
Returns the superclass of class, or nil.
Example
File.superclass #=> IO IO.superclass #=> Object Object.superclass #=> BasicObject class Foo; end class Bar < Foo; end Bar.superclass #=> Foo
Returns nil when the given class does not have a parent class:
Example
BasicObject.superclass #=> nil