派生クラス

派生クラス(Derived Class)は、オブジェクト指向プログラミング(OOP)において、他のクラスから継承して新しいクラスを定義することを指します。派生クラスは、基底クラス(または親クラス、スーパークラス)の属性とメソッドを継承し、同時に独自の属性とメソッドを追加できます。派生クラスはしばしば「子クラス」とも呼ばれます。

派生クラスの主な特徴は次の通りです:

  1. 継承: 派生クラスは基底クラスの属性とメソッドを継承します。これにより、基底クラスの機能を再利用できます。

  2. 追加と拡張: 派生クラスは、基底クラスから継承した属性やメソッドに加えて、新しい属性やメソッドを追加および拡張できます。これにより、派生クラスは基底クラスよりも具体的な機能を提供できます。

  3. ポリモーフィズム: 派生クラスは、基底クラスの共通インターフェースを実装し、ポリモーフィズムをサポートできます。これにより、異なる派生クラスのオブジェクトを統一的に扱うことが可能となります。

  4. オーバーライド: 派生クラスは、必要に応じて基底クラスから継承したメソッドをオーバーライドして、独自の実装を提供できます。

以下は、Pythonでの基底クラスと派生クラスの例です:

python
# 基底クラス class Shape: def __init__(self, color): self.color = color def area(self): pass # このメソッドは派生クラスでオーバーライドされる # 派生クラス1 class Circle(Shape): def __init__(self, color, radius): super().__init__(color) self.radius = radius def area(self): return 3.14159 * self.radius * self.radius # 派生クラス2 class Rectangle(Shape): def __init__(self, color, width, height): super().__init__(color) self.width = width self.height = height def area(self): return self.width * self.height # インスタンス化 circle = Circle("Red", 5) rectangle = Rectangle("Blue", 4, 6) # 派生クラスのメソッドを呼び出し print(f"Circle Area: {circle.area()}") # Circle Area: 78.53975 print(f"Rectangle Area: {rectangle.area()}") # Rectangle Area: 24

この例では、Shape クラスが基底クラスとして、共通の属性と抽象的な area メソッドを提供しています。それから、Circle クラスと Rectangle クラスが Shape クラスを継承し、それぞれの形状に合った具体的な area メソッドを実装しています。派生クラスは基底クラスの機能を継承しながら、個別の特性を追加しています。