基底クラス
基底クラス(Base Class)は、オブジェクト指向プログラミング(OOP)において、他のクラスに共通の属性とメソッドを提供するためのクラスです。基底クラスは、継承によって他のクラスに拡張や共通の振る舞いを提供する役割を果たします。基底クラスはしばしば「親クラス」または「スーパークラス」とも呼ばれます。
基底クラスの主な特徴は次の通りです:
-
共通の属性とメソッド: 基底クラスは、複数の派生クラスで共有できる属性(データメンバ)やメソッドを提供します。これにより、コードの再利用性が向上し、重複を削減できます。
-
継承: 派生クラスは基底クラスを継承して、基底クラスの属性やメソッドを継承します。派生クラスは基底クラスの特性を引き継ぎつつ、独自の機能を追加できます。
-
ポリモーフィズム: 基底クラスによって定義された共通のインターフェースを持つ派生クラスを使って、ポリモーフィズム(多態性)を実現できます。これにより、異なる派生クラスを統一的に扱うことが可能となります。
基底クラスは一般的に抽象的な概念や汎用的な機能を表現するために使用され、具体的なオブジェクトを表すクラス(具体クラス)に継承されます。例えば、動物(Animal)クラスが基底クラスであり、犬(Dog)や猫(Cat)などの具体クラスがこの基底クラスを継承して、共通の動物の特性やメソッドを利用することが考えられます。
以下は、Pythonでの基底クラスと派生クラスの例です:
python
# 基底クラス class Animal: def __init__(self, name): self.name = name def speak(self): pass # このメソッドは派生クラスでオーバーライドされる # 派生クラス1 class Dog(Animal): def speak(self): return f"{self.name} says Woof!" # 派生クラス2 class Cat(Animal): def speak(self): return f"{self.name} says Meow!" # 派生クラス3 class Duck(Animal): def speak(self): return f"{self.name} says Quack!" # インスタンス化 dog = Dog("Buddy") cat = Cat("Whiskers") duck = Duck("Daffy") # 動物が話す print(dog.speak()) # Buddy says Woof! print(cat.speak()) # Whiskers says Meow! print(duck.speak()) # Daffy says Quack!
この例では、Animal クラスが基底クラスとして、共通の属性と speak メソッドを提供しています。それから、Dog、Cat、および Duck といった派生クラスが Animal クラスを継承し、それぞれの種類の動物が話す方法を実装しています。基底クラスと派生クラスの組み合わせにより、ポリモーフィズムが実現され、異なる動物の話し声を同じ方法で表示できます。

ディスカッション
コメント一覧
まだ、コメントがありません