Una metaclase se utiliza en la programación orientada a objetos (POO) y normalmente se la considera una clase de clases. Como la mayoría de la metainformación, la metaclase funciona detrás del programa y el usuario nunca la ve. Una metaclase puede modificar información de la clase y puede vincularse a una o varias clases, según la estructura de codificación. No todas las estructuras de POO incluyen codificación de metaobjetos, y algunas solo pueden ofrecer codificación de metaobjetos en formatos avanzados.
En casi todos los tipos de codificación, la metacodificación es una etiqueta o línea de código que funciona en el programa, pero el usuario no la ve abiertamente. La metainformación está por encima del código y puede modificar información o agregarla al programa sin interferir directamente con el programa. En OOP, una metaclase se usa para tomar una clase y modificar su comportamiento.
Una clase en OOP es un conjunto de instancias u objetos colocados bajo un término general. Por ejemplo, el programador puede crear una clase llamada «Casa». Bajo este, el programador crea objetos que modifican o reproducen aspectos habituales en una casa, como habitaciones, muebles y personas. Si bien una clase puede modificar estos objetos, una metaclase funcionaría modificando la clase en sí.
Las clases en OOP son típicamente dinámicas y pueden sufrir muchos cambios antes de que finalice el programa. Las metaclases son piezas de información estáticas que rara vez cambian a menos que el programador encuentre que la metainformación no funciona correctamente. Esto evita que las metaclases funcionen accidentalmente con datos volátiles y también garantiza que los modificadores de comportamiento no se puedan manipular.
Dependiendo de la necesidad del programador, una metaclase estará vinculada a una sola clase oa muchas clases a la vez. Los programadores a menudo conectan la metaclase con una clase y agregan reglas o comportamientos únicos en la codificación del metaobjeto. Si hay varias clases que pueden sufrir la misma modificación de comportamiento, la metainformación se aplicará a varias clases diferentes. Esto es posible porque la codificación del metaobjeto está titulada y se puede llamar fácilmente cuando sea necesario.
Si bien esto es algo común en programas de nivel intermedio a avanzado, algunas estructuras de programación orientada a objetos no ofrecen metaclases. Esto se debe a que no hay necesidad de ellos o hay otros objetos o clases que tienen funciones similares pero se llaman de otra manera. Algunas estructuras de codificación también pueden ofrecer solo metaclases complejas y avanzadas, mientras que otras tienen otras más simples para que las utilicen codificadores intermedios.