class vs Class.new, module vs Module.new

Viewed 897

What is difference between class and Class.new & module and Module.new?

I know that:

  1. Class.new/Module.new create an anonymous class/module. When we assign it to constant for the first time it becomes name of that class/module. class/module do this automatically.

  2. When we want to inherit, we can pass an argument: Class.new(ancestor). When we don't specify an ancestor, it is set to the Object. class use this syntax: class A < Ancestor

  3. Class.new returns an object. class A returns nil. Same goes for modules.

Did I miss something?

2 Answers
Related