5オーバーライド前ページでは、サブクラスでフィールド・メソッドを追加できることを説明しました。追加したのが同じ名前の場合、どうなるでしょう。メソッド1つ持ちます。自クラスの名前を出力するメソッドです。HasOneMethodSuperクラスから継承した、サブクラス。メソッドを追加しています。自クラスの名前を出力するメソッドです。オーバーライドしています。このクラスを実行してください。インスタンスを1つ作ります。printMyName()メソッドを呼び出します。メソッド1つ持ちます。自クラスの名前を出力するメソッドです。HasOneMethodSuperクラスから継承した、サブクラス。メソッドを追加しています。自クラスの名前を出力するメソッドです。オーバーライドしています。このクラスを実行してください。インスタンスを1つ作ります。printMyName()メソッドを呼び出します。OverridedSub}}まず、フツーのクラス、HasOneMethodSuperクラスがあります。メソッド1つ持ちます。自クラスの名前を出力するメソッドです。メソッド1つ持ちます。自クラスの名前を出力するメソッドです。);}}このクラスはメソッドを1つ持つ普通のクラスです。このクラスのprintMyName()メソッドは、クラス名を出力します。このHasOneMethodSuperクラスのサブクラス、OverridedSubクラスを作ります。HasOneMethodSuperクラスから継承した、サブクラス。メソッドを追加しています。自クラスの名前を出力するメソッドです。オーバーライドしています。HasOneMethodSuperクラスから継承した、サブクラス。メソッドを追加しています。自クラスの名前を出力するメソッドです。オーバーライドしています。);}}このクラスはprintMyName()メソッドを持っています。スーパークラスのprintMyName()メソッドと同じ名前です。このように、スーパークラスが持つメソッドと同じ名前・引数のメソッドをサブクラスで作ることを「オーバーライド」と言います。メソッドをオーバーライドしても、インスタンスの作られ方は同じです。インスタンスを1つ作ります。インスタンスを1つ作ります。OverridedSub();ただ、メソッドをオーバーライドすると、オーバーライドされた側からオーバーライドした側へひもが付きます。オーバーライドされた・したメソッド「ひもが付く」とどうなるかというと、オーバーライドされたメソッドを呼び出そうとすることで、自動的にオーバーライドしたメソッドが呼び出されます。printMyName()メソッドを呼び出します。printMyName()メソッドを呼び出します。OverridedSubprintMyName()メソッドはスーパークラスとサブクラスの両方にあります。両方にある場合、サブクラスのprintMyName()メソッドが「オーバーライドしている」ことになるので、このサブクラスのprintMyName()メソッドが呼び出されます。オーバーライドしたメソッドを呼び出すこれはつまり、オーバーライドしたことでメソッドを「上書き」したことになります。スーパークラスにあるメソッドをサブクラスで上書きすることで、スーパークラスの機能を「書き換える」わけです。サブクラスではスーパークラスにフィールドやメソッドを追加することができました。それに加え、このオーバーライドという機能を使うことでスーパークラスのメソッドを修正することができるというわけです。オブジェクト指向とJavaこのページは、Java言語を用いたオブジェクト指向プログラミングのチュートリアル解説を行う「Javaのオブジェクト指向入門」の一ページです。詳しい説明は「Javaのオブジェクト指向入門」目次をご覧ください。