このことは、不思議に感じるかもしれません。定数の値は変更できないはずです。クラスのインスタンスそのものではなく、インスタンスへの参照です。参照とは、そのインスタンスが存在する場所までの、道筋を記した、地図のようなものです。定数ですので、この地図を変更することはできません。固定されているのは、その地図だけです。プロパティは、変更することができます。この参照という概念は、プログラミングを始めた人の、誰もがつまずく概念です。焦らず、慣れていきましょう。クラスのインスタンスを作成しました。いうメソッドが呼び出されています。メソッドは、特に記述しなくても、すべてのプロパティに初期値が設定されている場合は、自動的に作成される決まりになっています。メソッドを記述することもできます。空文字を設定しています。プログラミングでは、空文字は、空文字という値です。値が存在しないという意味ではありません。いう文字列を設定しています。結果として、デバッグエリアに「Hi」と表示されます。メソッドを定義することもできます。メソッドが選ばれて、デバッグエリアには、「こんにちは」と表示されます。キーワードは、そのクラス自身を表します。プロパティを指定しています。継承あるクラスをもとにして、別の新しいクラスを作ることができます。このことを継承といいます。もとになったクラスをスーパークラス、もしくは親クラスと呼び、新しく作られたクラスをサブクラス、もしくは子クラスと呼びます。継承によって作られた新しいクラスは、特に何も記述しなくても、もとになったクラスの、すべてのプロパティとメソッドを持っています。サブクラスには、新しいプロパティやメソッドを追加することができます。"こんにちは"sub.say()このリストを実行すると、デバッグエリアに「こんにちは」と表示されます。スーパークラスを指定すると、そのスーパークラスの、すべてのプロパティとメソッドを引き継いだ、サブクラスが定義されます。クラスに存在することがわかります。オーバライドスーパークラスのメソッドを、サブクラスで、書き換えることができます。Sub()sub.say()このリストを実行すると、デバッグエリアに「Hello」、「Bye」と表示されます。キーワードで始めます。super.say()super.メソッド名と記述することで、スーパークラスのメソッドを呼び出せます。サブクラスでメソッドをオーバーライドしても、スーパークラスのメソッドまでが書き換えられるわけではありません。次章では、複数の値を管理する、コレクションという仕組みを、学習します。