継承

「継承(Inheritance)」は、オブジェクト指向プログラミング(OOP)の中核的な概念の一つであり、あるクラス(親クラスまたは基底クラス)が別のクラス(子クラスまたは派生クラス)にその属性とメソッドを受け継ぐプロセスを指します。継承により、既存のクラスの機能を拡張し、新しいクラスを定義することが可能となります。

以下は継承に関する基本的な要素と用語についての説明です:

  1. 親クラス(基底クラス):

    • 継承の元となるクラスを親クラスまたは基底クラスと呼びます。親クラスは継承元のクラスであり、一般的な属性やメソッドを持っています。
  2. 子クラス(派生クラス):

    • 親クラスから属性やメソッドを継承する新しいクラスを子クラスまたは派生クラスと呼びます。子クラスは親クラスの機能を拡張、修正、または特殊化できます。
  3. 継承関係:

    • 親クラスと子クラスの関係を継承関係と呼びます。子クラスは親クラスの属性とメソッドを継承し、それに加えて独自の属性やメソッドを持つことができます。
  4. 継承の利点:

    • 継承により、コードの再利用が促進されます。共通の機能を持つクラスを親クラスとして定義し、それを継承することで、同様の機能を持つ複数のクラスを効率的に作成できます。
  5. オーバーライド:

    • 子クラスは親クラスから継承したメソッドをオーバーライド(上書き)できます。これにより、子クラスは親クラスのメソッドの動作をカスタマイズできます。
  6. スーパークラス:

    • クラス階層が複数の階層にまたがる場合、あるクラスの親クラスはそのスーパークラスと呼ばれることがあります。
  7. サブクラス:

    • クラス階層が複数の階層にまたがる場合、あるクラスの子クラスはそのサブクラスと呼ばれることがあります。

以下はPythonでの継承の例です:

python
class Animal: def __init__(self, name): self.name = name def speak(self): pass class Dog(Animal): def speak(self): return f"{self.name} says Woof!" class Cat(Animal): def speak(self): return f"{self.name} says Meow!" # Animalクラスから継承したDogとCatクラスを使用 dog = Dog("Buddy") cat = Cat("Whiskers") print(dog.speak()) # "Buddy says Woof!" print(cat.speak()) # "Whiskers says Meow!"

この例では、Animal クラスを親クラスとし、Dog クラスと Cat クラスがそれぞれ子クラスとして継承しています。子クラスは親クラスの属性(name)とメソッド(speak)を継承し、speak メソッドをオーバーライドして独自の動作を提供しています。