オーバーライドに関して、簡単に整理。
Contents
オーバーライドとは?
スーパークラスのメソッドをサブクラスで書きかえること。
オーバーライド例

SuperClassのmath()では、引数のxとyを入れると、掛け算されるようになっている。
Subclassでオーバーライドすることで、math()が、足し算に変更することができる。

よって、superClass.math(10,10)で呼び出すと、SuperClassで定義したmath()は掛け算が定義されているため、100という結果が出る。
subClass.math(10,10)で呼び出すと、オーバーライドでSubClassのmath()は掛け算から足し算に書き換えているので、20という結果がでる。
SuperClassの変数に対して、subClassのメソッドが使える
先ほどはSubClassから変数subclassを作って、足し算のmath()を呼び出した。
SuperClassの変数に対して、subClassのオブジェクトを格納した時、もしオーバーライドしていると、サブクラスのメソッドが呼び出される。
よって、
SuperClass subclass = new SubClass();
subclass.math(10,10);
で呼び出した時も、math()は足し算として呼び出される。
「@override」とは?
アノテーションと言われる。
@overrideをつけることによって、引数が違う名前になった時に、エラーになるようチェックをつけることができる。
@overrideがある状態で、サブクラスのmath()の名前をmath1()など、別の名前に変えるとエラーが出る。

「@override」のメリットは?
同じ名前を書くように制限をかけることによって、スペルミスでオーバーライドができていなかったり、逆にオーバーライドするつもりがなかったのに、オーバーライドしてしまっていたという事態を防ぐことができる。
全体像を把握する
下記にJavaやwebアプリケーションについての記事をまとめた。
-
-
Javaでwebアプリケーションを作る
ここでは、Javaでのwebアプリケーションの作成についてまとめていく。 Contents1 そもそもwebアプリケーションとは?2 Javaで作るwebアプリケーションの全体像3 Javaの開発環境を整える4 サーバ5 ...
続きを見る
コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。
-
-
コンピューターサイエンスとITの全体像
ITの進化は早く、新しい言葉がどんどん出てきて、情報に追いつくのが難しく感じてしまう。 もしコンピュータサイエンスやITの内容の基礎だったり全体像を把握しておけば、今後新しいITがどんどん出てきても早く吸収していけるので ...
続きを見る
今回使ったコード
//例1
public class Main{
public static void main(String[] args){
SuperClass superClass = new SuperClass();
superClass.math(10,10);
SubClass subclass = new SubClass();
subclass.math(10,10);
}
}
//スーパークラス
class SuperClass{
public void math(int x1, int y1){
int z1 = x1 * y1;
System.out.println("x1 * y1 =" + z1);
}
}
//サブクラス
class SubClass extends SuperClass {
@Override
public void math(int x2, int y2){
int z2 = x2 + y2;
System.out.println("x1 + y1 = " + z2);
}
}