ポ
リ
モ
ー
フ
ィ
ズ
ム
①
オ
ー
バ
ー
ロ
ー
ド
同
じ
名
前
で
引
数
や
戻
り
値
の
異
な
る
メ
ソ
ッ
ド
を
複
数
定
義
す
る
こ
と
void
func1
()
戻
り
値
メ
ソ
ッ
ド
名
引
数
void
(int a,int b)
int
(int a,int b,int c)
string
(string str)
オ
ー
バ
ー
ラ
イ
ド
親
ク
ラ
ス
、
子
ク
ラ
ス
に
同
じ
名
前
、
同
じ
戻
り
値
の
型
、
同
じ
引
数
を
と
る
メ
ン
バ
関
数
が
存
在
す
る
場
合
、
子
ク
ラ
ス
の
メ
ソ
ッ
ド
は
、
親
ク
ラ
ス
の
メ
ソ
ッ
ド
を
オ
ー
バ
ー
ラ
イ
ド
す
る
と
言
う
。
オ
ー
バ
ー
ラ
イ
ド
さ
れ
た
メ
ソ
ッ
ド
は
、
親
ク
ラ
ス
が
同
じ
メ
ソ
ッ
ド
を
持
っ
て
い
て
も
、
原
則
的
に
子
ク
ラ
ス
に
定
義
さ
れ
た
も
の
が
実
行
さ
れ
る
。
通
常
は
イ
ン
ス
タ
ン
ス
が
サ
ブ
ク
ラ
ス
の
も
の
で
も
、
そ
の
参
照
を
代
入
す
る
変
数
の
型
が
ス
ー
パ
ー
ク
ラ
ス
の
も
の
で
あ
れ
ば
、
同
名
の
メ
ソ
ッ
ド
が
あ
れ
ば
ス
ー
パ
ー
ク
ラ
ス
の
も
の
が
呼
び
出
さ
れ
る
、
親
ク
ラ
ス
に
virtual
、
子
ク
ラ
ス
に
override
と
定
義
す
る
と
、
サ
ブ
ク
ラ
ス
の
メ
ソ
ッ
ド
を
呼
び
出
す
こ
と
が
可
能
ポ
リ
モ
ー
フ
ィ
ズ
ム
①
virtual
override
親
ク
ラ
ス
に
virtual
子
ク
ラ
ス
に
override
を
つ
け
な
い
と
親
ク
ラ
ス
の
メ
ソ
ッ
ド
が
呼
ば
れ
る