同じインターフェースに準拠するオブジェクトは、1つのオブジェクト クラスを定義します。 バリエーションのない、既存のオブジェクト クラスのインスタンスとして定義されたオブジェクトは、そのオブジェクト クラスに対して定義されたデータ属性とメソッドのすべてを自動的に含みます。 オブジェクト クラスが他のクラスのインターフェースに準拠しながらも、それを拡張するかバリエーションを含む場合には、そのオブジェクト クラスは新しいサブクラス、すなわち派生クラスを定義します。 この場合、元の(変更前の)クラスは、「スーパー クラス」、またはその派生クラスの「基本クラス」と呼ばれます。
サブクラスのインスタンスとして定義されたオブジェクトは、基本クラスに対して定義されたデータ属性とメソッドのすべてと、サブクラスによって定義されたエクステンションとバリエーションのすべてを自動的に含み(継承し)ます。
基本クラスとサブクラスのリレーションシップを任意の範囲までネストして、以下のイベントが発生するツリー構造を生成することができます。
- 1つのオブジェクトのデータ属性とメソッドは、基本クラスを定義する。
- 各サブクラス オブジェクトは基本クラスのデータ属性とメソッドを継承するが、継承したデータ属性とメソッドを上書きして新しいオブジェクト機能を追加するデータ属性とメソッドを含む。