オブジェクト指向プログラミングでは、クラスという概念を使って、データと機能を組み合わせることができます。
クラスは、オブジェクトの設計図のようなもので、オブジェクトの型を定義します。
インスタンスは、クラスから作られたオブジェクトの実体です。
属性は、オブジェクトの特徴やパーツを記録するための変数です。
メソッドは、オブジェクトの機能を定義するための関数です。
クラス継承とは、あるクラスが別のクラスのデータやメソッドを引き継ぐことです。
多重継承とは、あるクラスが複数のクラスからデータやメソッドを引き継ぐことです。
Pythonでは、classキーワードでクラスを定義し、コンストラクタで属性を初期化し、defキーワードでメソッドを定義します。
例えば、以下のように書くことができます。
# クラスの定義
class Animal:
# コンストラクタ
def __init__(self, name, age):
# 属性
self.name = name
self.age = age
# メソッド
def speak(self):
print(f"私は{self.name}です。{self.age}歳です。")
# クラス継承
class Dog(Animal):
# コンストラクタ
def __init__(self, name, age, breed):
# 親クラスのコンストラクタを呼び出す
super().__init__(name, age)
# 子クラス独自の属性
self.breed = breed
# メソッド
def bark(self):
print("ワンワン")
# 多重継承
class FlyingDog(Dog, Bird):
# コンストラクタ
def __init__(self, name, age, breed, wing_length):
# 親クラスのコンストラクタを呼び出す
super().__init__(name, age, breed)
# 子クラス独自の属性
self.wing_length = wing_length
# メソッド
def fly(self):
print("空を飛びます")
# インスタンスの生成
a = Animal("アニー", 3)
d = Dog("ポチ", 5, "柴犬")
f = FlyingDog("フリー", 2, "ミックス", 30)
# メソッドの呼び出し
a.speak()
d.speak()
d.bark()
f.speak()
f.bark()
f.fly()
このようにして、Pythonでオブジェクト指向プログラミングを行うことができます。