0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

オーバーライド

Posted at

オーバーライド

オブジェクト指向言語において、サブクラス(派生クラス)が親クラスのメソッドを再定義して上書きすること
→サブクラスは親クラスのメソッドの振る舞いを変更したり、新しい機能を追加したりできる

オーバーライドで重要な点

  • メソッドのシグネチャが親クラスと一致していること
    シグネチャ : メソッド名、引数の型、戻り値の型

  • サブクラスでオーバーライドするメソッドは、親クラスのメソッドと同じメソッド名と引数を持ち、戻り値の型も同じである必要がある
    →メソッドの処理内容や振る舞いはサブクラスで変更可能

オーバーライドの例

class Animal {
    void makeSound() {
        System.out.println("Animal makes a sound.");
    }
}

class Cat extends Animal {
    // 親クラスのmakeSoundメソッドをオーバーライド
    @Override
    void makeSound() {
        System.out.println("Meow!");
    }
}

class Dog extends Animal {
    // 親クラスのmakeSoundメソッドをオーバーライド
    @Override
    void makeSound() {
        System.out.println("Woof!");
    }
}

Animalクラスを継承してCatクラスとDogクラスを作成

CatクラスとDogクラスはそれぞれmakeSoundメソッドをオーバーライドしている

CatクラスのmakeSoundメソッドは"Meow!"を表示
DogクラスのmakeSoundメソッドは"Woof!"を表示

親クラスのAnimalクラスにあるmakeSoundメソッドの振る舞いは、それぞれのサブクラスによって変更されている

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?