Say, I have the following 2 classes:

```
class A
  def a_method
  end
end

class B < A
end

```

Is it possible to detect from within (an instance of) class B that method `a_method` is *only* defined in the superclass, thus not being overridden in B?

**Update: the solution**

While I have marked the answer of Chuck as "accepted", later Paolo Perrota made me realize that the solution can apparently be simpler, and it will probably work with earlier versions of Ruby, too.

Detecting if "a\_method" is overridden in B:

```
B.instance_methods(false).include?("a_method")

```

And for class methods we use `singleton_methods` similarly:

```
B.singleton_methods(false).include?("a_class_method")

```