「スーパー」の方は意味が合わないんだけど。解答:「スーパーセット」と「サブセット」という用語が元になっています。「超」とか「予備」という意味は忘れた方がいいでしょう。前ページで出てきた「スーパークラス」と「サブクラス」、そしてインスタンスの関係については分かったと思います。すると、「スーパークラス」とか「サブクラス」ってどういう理由でこんな言葉が使われているんでしょう。「スーパー」と「サブ」にどんな意味が?実はこれは、数学用語が元になっています。部分集合=サブセット)。その理由は、ちょっと複雑です。今回はクラスからではなくインスタンスから考えてみましょう。実際、プログラムを作るときにもクラスというよりはインスタンスをイメージして作ると思います。どんな機能を持つインスタンスが必要か――そこからクラスという設計図を考えていくわけです。今回の例では、2つのインスタンスが必要、ということでこんなインスタンスをイメージした、ということにします。2つのインスタンスインスタンス1はmethodA()メソッドとmethodB()メソッドを持っています。インスタンス2はmethodA()メソッドとmethodC()メソッドを持っています。こんなインスタンスがあれば目的のプログラムが動く、と考えたわけです。次に、これらのインスタンスから機能(フィールドやメソッド)を抜き出して、共通の機能を図にします。共通の機能を図にしてみるインスタンス1とインスタンス2は、共通の機能としてmethodA()を持っています。このmethodA()メソッドを大きな円(ピンク)の中に書きます。その大きな円の中に小さな円を2つ書き、インスタンス1とインスタンス2それぞれの機能を書きます。インスタンス1だけの機能はmethodB()メソッドなので、これを小さい円の1つ(橙)に書きます。インスタンス2だけの機能はmethodC()メソッドなので、これを小さい円の1つ(緑)に書きます。このように図を書くと、「インスタンス1の機能」は「橙」の機能+「ピンク」の機能、「インスタンス2」の機能は「緑」の機能+「ピンク」の機能ということになります。この図の内、全体を覆うピンクの範囲を「スーパーセット」、その中にある橙と緑の小さい範囲を「サブセット」と言います。これは数学用語で、単純に「覆ってる側=スーパーセット」「覆われてる側=サブセット」と考えればいいでしょう。この図ができたら、最後にこの図を元にクラスを作ります。「共通機能」の部分を一クラスにして、このクラスから継承して、インスタンス1の機能だけを持つクラスと、インスタンス2の機能だけを持つクラスを作ります。クラスを作る!インスタンス1とインスタンス2の共通機能を持つクラスとしてGeneralSuperクラスを作ります。インスタンス1の機能だけを持つクラスとしてSpecialSub1クラスを作ります。インスタンス2の機能だけを持つクラスとしてSpecialSub2クラスを作ります。SpecialSub1クラスとSpecialSub2クラスはGeneralSuperクラスから継承するので、インスタンスを作ると共通機能も持つことができます。して作られたクラスの内、共通部分のクラスは「スーパーセット」の機能を持つクラスなので「スーパークラス」と呼びます。各インスタンスの部分のクラスは「サブセット」の機能を持つクラスなので「サブクラス」と呼びます。いうわけで、「スーパークラス」「サブクラス」という名前が付けられたわけです。ちなみにできたクラスはこんな感じ。methodA()メソッド。2つのインスタンス両方が持つメソッドです。GeneralSuperクラスから継承した、サブクラス。インスタンス1の機能を持ちます。methodB()メソッド。インスタンス1が持つメソッドです。GeneralSuperクラスから継承した、サブクラス。インスタンス2の機能を持ちます。methodC()メソッド。インスタンス2が持つメソッドです。