この記事の目次
1. オーバーロード
● 概念
● 例題
オーバーロードの例題
package helloworld;
public class HelloWorld {
public static void main(String[] args) {
self("青山");
self("青山", 18);
}
static void self(String name) {
System.out.println("私は" + name + "です");
}
static void self(String name, int age) {
System.out.println("私は" + name + "です。" + age + "歳です。");
}
}実行結果:
私は青山です 私は青山です。18歳です。
2. オーバーライドとは
● オーバーライドとは
● オーバーライドのメリット
● 例題
オーバーライドの例題
package helloworld;
// スーパークラス
class ClassSuper {
int a = 10;
int b = 2;
public void calc(){
System.out.println("a + b = " + (a + b));
}
}
//サブクラス
class ClassSub extends ClassSuper{
@Override
public void calc(){
super.calc();
// 処理を変更
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
}
}
public class HelloWorld {
public static void main(String[] args) {
ClassSub ab = new ClassSub();
ab.calc();
}
}実行結果:
a + b = 12 a - b = 8 a * b = 20 a / b = 5
super句を使うことで、スーパークラスであるClassSuperクラスのcalcメソッドのそれと一致します。つまり、サブクラスでオーバーライドしていてもスーパークラスのメソッドをそのまま使うことができます。3. オーバーライドの規定
● @Override(アノテーション)
● 戻り型とシグネチャ
● アクセスレベル
メソッドの頭部について詳しく見たい方:
| メソッドの頭部 ../../../java/java-method-basic.html?goto=2to1 メソッドとは複数の文をまとめ、それを1つの処理として名前をつけたもので、部品の最小単位です。この記事ではJAVAのメソッドの概念、メリット、・・・ |
● throw
● final修飾子
スーパークラス側のメソッドにfinal修飾子が付与されている場合は、サブクラスでそのメソッドのオーバーライドはできません。
● abstract修飾子
スーパークラス側のメソッドにabstract修飾子が付与されている場合は、サブクラスでは必ずオーバーライドする必要があります。オーバーライドしない場合はそのサブクラス全体がabstractクラスになります。
4. 演習問題
オーバーロードとオーバーライドの演習問題
広告