ジェネリック・ オブジェクトとして実現されたデータは、 単一化 や GC など 様々な局面での自分自身の処理の仕方を記述したメソッドを集めた メソッド表、及びデータ領域から成る。 このメソッド表がオブジェクトのクラス定義に当たるものである。
ユーザはメソッド表に含めるべきメソッド、オブジェクト生成のための ルーチン、データ領域の構成などを、ジェネリック・オブジェクト定義用 に作成したマクロや関数 を使用しつつ、C言語で記述することで、 ジェネリック・オブジェクトを定義する。 ジェネリック・オブジェクトのデータ領域は KL1 の組み込みデータ型 や C で定義可能なデータ型から構成することが可能であり、 様々なデータをジェネリック・オブジェクトに持たせることが出来る。
ジェネリック・オブジェクトの定義に当たっては、
KLIC システムの実行時カーネルに関する完全な知識は必要とせず、
ジェネリック・オブジェクト定義時には、実行時カーネルには一切手を入れる
必要はないように設計がなされている。
KLIC の組み込みデータ型のデータが
KLIC システムの実行時カーネルによって処理されるのに対し、
ジェネリック・オブジェクト型のデータに対しては、
実行時カーネルがそのメソッド表を参照して適切な処理を呼びだす。
実行時カーネルは、ジェネリック・オブジェクトのメソッドの中身やデータ領域の
構成については特に仮定を置いておらず、これらの点について
ユーザはかなり自由に
KLICを拡張することができる
。
ジェネリック・オブジェクトはこのように定義の記述に大きな自由度があり、 また、処理実行の面や定義記述の面で実行時カーネルから独立しているので、 言語システムの高い拡張性を実現するものになっている。