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

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アプリケーションの作成についてまとめていく。 そもそもwebアプリケーションとは? そもそもwebアプリケーションとは何か?ウェブサイトとの違いは? 下記にまとめた。 ...
続きを見る
コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。
-
-
Screen-Shot-2021-06-11-at-11.45.16
続きを見る
今回使ったコード
//例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);
}
}