// 描画可能なオブジェクトを示すインターフェイス
interface Drawable {
void draw();
}
// 形状を表す Shape クラス
class Shape implements Drawable {
// Shape クラスが Drawable インターフェイスの draw メソッドを実装
@Override
public void draw() {
System.out.println("Drawing a shape");
// 描画の具体的な処理をここに追加
}
// 他の形状に関するメソッドやプロパティを追加できる
}
この例では、Drawable
インターフェイスには draw
メソッドがあります。そして、Shape
クラスはこの Drawable
インターフェイスを実装しています。これにより、Shape
クラスは描画可能なオブジェクトとして扱うことができます。draw
メソッド内には具体的な描画処理が実装されることが期待されます。
クラスとインターフェイスの関係性
クラスとインターフェイスは、Javaにおけるオブジェクト指向プログラミングの基本的な要素です。これらの要素を組み合わせて使用することで、柔軟で効果的なコードを作成することができます。以下に、クラスとインターフェイスの関係性について解説します。
- 継承(Inheritance):
- クラスは別のクラスを継承できます。これにより、子クラスは親クラスのフィールドやメソッドを継承し、再利用することができます。
- インターフェイスも継承できます。インターフェイスの継承では、新しいインターフェイスが既存のインターフェイスのメソッドを含むことができます。
- 実装(Implementation):
- インターフェイスは、クラスが実装するためのメソッドを定義します。クラスはこれらのメソッドを実装し、必要な機能を提供します。
- クラスがインターフェイスを実装することで、そのクラスはインターフェイスが定義する振る舞いを持つことが期待されます。
- 多重継承の代替手段:
- Javaでは、クラスは単一の親クラスしか継承できませんが、複数のインターフェイスを実装することができます。これにより、多重継承の柔軟性を提供しつつ、クラスの独立性を保つことができます。
- コードの共有と拡張:
- インターフェイスを使用することで、異なるクラスが共通の振る舞いを持つことができます。これにより、コードの再利用性が向上し、メンテナンスが容易になります。
- インターフェイスはクラスに追加される新しい振る舞いを定義するため、既存のクラスに新しい機能を追加することができます。
- ポリモーフィズム:
- インターフェイスを使用すると、異なるクラスが同じインターフェイスを実装することができます。これにより、同じインターフェイスを介して異なるクラスのオブジェクトにアクセスし、統一的な方法で操作することができます。
総じて、クラスとインターフェイスは異なる役割を果たしますが、適切に組み合わせて使用することで、柔軟で拡張可能なアプリケーションを構築することができます。