In
computer science, a
metaobject is an
object that manipulates, creates, describes, or implements other objects (including itself). The object that the metaobject is about is called the base object. Some information that a metaobject might store is the base object's
type,
interface,
class,
methods,
attributes,
parse tree, etc. Metaobjects are examples of the computer science concept of
reflection, where a system has access (usually at run time) to its internal structure. Reflection enables a system to essentially rewrite itself on the fly, to change the actual structure of the system as it executes.