メタクラス
出典: フリー百科事典『ウィキペディア(Wikipedia)』
メタクラス(meta class)とは、クラス-インスタンス関係を持つオブジェクト指向言語で、クラス自身も「クラスオブジェクト」として扱われる場合にそのクラスオブジェクトが所属するクラスのことをいう。
例えばある文字列がStringクラスのインスタンスである時、「Stringクラスオブジェクト」はStringメタクラスのインスタンスとなる。
メタクラスを持つ言語ではクラスそのものの挙動もオブジェクト指向のルールで記述されているので、初期化やインスタンス化のルール、実行状態の管理などをカスタマイズできる場合がある。このような機構を「メタオブジェクトプロトコル」と呼ぶ。Smalltalk、CLOSが代表的である。