Javaの継承とポリモーフィズム
1. 継承とは
継承は、既存のクラスを基にして新しいクラスを作成する仕組みです。これにより、コードの再利用が容易になります。
継承の基本
class Animal {
String name;
void eat() {
System.out.println(name + " is eating.");
}
}
class Dog extends Animal {
void bark() {
System.out.println(name + " is barking.");
}
}
2. スーパークラスとサブクラス
継承元のクラスを「スーパークラス」、継承先のクラスを「サブクラス」と呼びます。
スーパークラスとサブクラスの例
class Vehicle {
void move() {
System.out.println("Vehicle is moving.");
}
}
class Car extends Vehicle {
void honk() {
System.out.println("Car is honking.");
}
}
3. メソッドのオーバーライド
サブクラスでスーパークラスのメソッドを上書きすることを「オーバーライド」と言います。
class Bird {
void sound() {
System.out.println("Bird is chirping.");
}
}
class Parrot extends Bird {
@Override
void sound() {
System.out.println("Parrot is talking.");
}
}
4. superキーワード
superを使うと、スーパークラスのメソッドを呼び出せます。
class Parent {
void showMessage() {
System.out.println("Hello from Parent");
}
}
class Child extends Parent {
void showMessage() {
super.showMessage();
System.out.println("Hello from Child");
}
}
5. ポリモーフィズム
ポリモーフィズム(多態性)は、同じメソッドが異なる振る舞いをする仕組みです。
ポリモーフィズムの例
class Shape {
void draw() {
System.out.println("Drawing a shape.");
}
}
class Circle extends Shape {
@Override
void draw() {
System.out.println("Drawing a circle.");
}
}
class Square extends Shape {
@Override
void draw() {
System.out.println("Drawing a square.");
}
}
6. 継承とコンストラクタ
サブクラスのコンストラクタは、スーパークラスのコンストラクタを呼び出せます。
class Animal {
String name;
Animal(String name) {
this.name = name;
}
}
class Cat extends Animal {
Cat(String name) {
super(name);
}
}
7. まとめ
継承とポリモーフィズムは、オブジェクト指向の重要な概念です。適切に活用して、効率的なコードを作成しましょう。
8. 演習問題
- スーパークラス
Animalを作成し、CatとDogクラスを継承させ、それぞれ異なるメソッドを追加してください。 - ポリモーフィズムを活用して、異なるサブクラスのオブジェクトを同じリストに格納し、それぞれの
draw()メソッドを呼び出してみましょう。

コメント