Python | ポリモーフィズムの使い方
公開日:2021/6/6
Pythonでは,いくつかのクラスを作成する場合,各々のクラスで共通した名前のメソッドを利用することができる.これをポリモーフィズムと呼ぶ.同じ名前のメソッドを利用すると,プログラム全体が分かりやすくなる.以下にポリモーフィズムの使い方を記す.
◆実施環境
Python 3.8.8
■ポリモーフィズムを利用した基本構文
“abc"から"abstractmethod"と"ABCMeta"をimportする.親クラスを定義し,"()"に"metaclass=ABCMeta"を入力する."@abstractmethod"というデコレータを用いる場合,インスタンスメソッド(今回はcall)とpassを記載する.子クラスでは親クラスを継承し,メソッドの"call"をオーバーライドする.
# 1の処理
from abc import abstractmethod, ABCMeta
class Bird(metaclass=ABCMeta): # 親クラス
def __init__(self,name):
self.name = name
@abstractmethod # 抽象基底メソッド
def call(self):
pass
def introduction(self): # 共通メソッド
print(self.name)
class Crow(Bird): # 親クラス名を継承
def call(self):
print(f'This is crow and name is {self.name}')
class Sparrow(Bird): # 親クラス名を継承
def call(self):
print(f'This is sparrow and name is {self.name}')
obj_crow = Crow('Kataro')
obj_crow.call()
obj_spar = Sparrow('Chuntaro')
obj_spar.call()
■実行結果
# 1の結果
This is crow and name is Kataro
This is sparrow and name is Chuntaro
以上