پلی مورفیسم توانایی یک شی برای گرفتن اشکال مختلف است. شایع ترین استفاده از پلی مورفیسم در برنامه نویسی شی گرایی داشتن بیش از یک متد با همان نام در یک کلاس واحد است. دو نوع پلی مورفیسم وجود دارد:
- پلی مورفیسم استاتیک (static polymorphism)
- پلی مورفیسم پویا (dynamic polymorphism)