archive

[Java / @Override] オーバーライドとは


オーバーライドに関して、簡単に整理。

オーバーライドとは?

スーパークラスのメソッドをサブクラスで書きかえること。

オーバーライド例

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アプリケーションについての記事をまとめた。

[st-card myclass="" id=3431 label="" pc_height="" name="" bgcolor="" color="" fontawesome="" readmore=“on”]

コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。

[st-card myclass="" id=4587 label="" pc_height="" name="" bgcolor="" color="" fontawesome="" readmore=“on”]

今回使ったコード

`//例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); } }`