サブクラス

サブクラス(Subclass)は、オブジェクト指向プログラミング(OOP)における基本クラスまたはスーパークラスから派生し、そのクラスの属性やメソッドを継承したクラスを指します。サブクラスは、スーパークラスの特性を引き継ぎ、それを拡張、修正、またはカスタマイズできます。サブクラスは、スーパークラスの一部またはすべての特性を持ち、新しい特性を追加できます。

以下はサブクラスの主要な特徴です:

  1. 継承: サブクラスはスーパークラスの属性やメソッドを継承します。これにより、スーパークラスで定義された振る舞いやデータが再利用できます。

  2. 拡張: サブクラスはスーパークラスの特性を拡張できます。新しい属性やメソッドを追加し、既存のメソッドをオーバーライドすることができます。

  3. カスタマイズ: サブクラスはスーパークラスの振る舞いをカスタマイズできます。スーパークラスのメソッドをオーバーライドして、新しい実装を提供できます。

  4. 特化: サブクラスはスーパークラスの特化バージョンとして考えることができます。例えば、動物(Animal)スーパークラスから派生した犬(Dog)クラスは、動物の特性を特化しています。

サブクラスは、スーパークラスの特性を再利用し、コードの再利用性を向上させるのに役立ちます。また、サブクラスの導入により、多様なクラスを効果的にモデル化し、階層的なクラス構造を構築できます。

以下は、Pythonでのサブクラスの簡単な例です:

python
class Animal: def __init__(self, name): self.name = name def speak(self): return "Animal speaks" class Dog(Animal): def speak(self): return "Dog barks" class Cat(Animal): def speak(self): return "Cat meows" dog = Dog("Buddy") cat = Cat("Whiskers") print(dog.name) # スーパークラスの属性をアクセス print(dog.speak()) # サブクラスのメソッドを呼び出し print(cat.name) print(cat.speak())

この例では、Animal スーパークラスから Dog クラスと Cat クラスが派生しています。サブクラスはスーパークラスの属性を継承し、メソッドをオーバーライドして新しい振る舞いを提供しています。