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

Java

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


オーバーライドとは?

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


オーバーライド例


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);
    }
}

関連記事

関連トピック

#