オブジェクト指向 ポリモーフィズム

ポリモーフィズムとは同名のメソッドで異なる挙動をすること。

 
一見聞いただけだと理解しずらいが
用はメソッドをオーバーライドすれば挙動が変わるよね。
 
呼ばれた側のメソッドで挙動を変えますよということ。
 
c++サンプルソースが落っこちてたので
貼っときます
 
ポリモーフィズムで書き換えるのが妥当と思われるcase文の例
 
switch ( shape.type ) {
  case Shape_Circle:
      shape.DrawCircle();
      break;
  case Shape_Square:
      shape.DrawSquare();
      break;
 …
 
shape.DrawCircle()ルーチンとshape.DrawSquare()ルーチンの呼び出しは図形が円であるか四角形であるかに関係なく呼びだせるshape.Draw()というルーチンに置きかえるべき。
 
ポリモーフィズムで置きかえるのは妥当ではないcase文
 
switch ( ui.Command() ) {
   case Command_OpenFile:
       OpenFile();
        break;
   case Command_Print:
       Print();
       break;
   case Command_Save:
       Save():
       break;
    case Command_Exit:
       ShutDown();
       break;
    …
この場合、ポリモーフィズムで書き換えることもできるがこのような単純なケースでは書き換える意味はほとんどない