Javaの継承とポリモーフィズム

 

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. 演習問題

  1. スーパークラスAnimalを作成し、CatDogクラスを継承させ、それぞれ異なるメソッドを追加してください。
  2. ポリモーフィズムを活用して、異なるサブクラスのオブジェクトを同じリストに格納し、それぞれのdraw()メソッドを呼び出してみましょう。

コメント

タイトルとURLをコピーしました