زمانی که یک کار یا وظیفه ی معین به اشکال و روش های مختلف قابل اجرا می باشد، در دنیای برنامه نویسی به آن چندریختی یا polymorphism گفته می شود. برای مثال، می توان به روش های مختلف متقاعد کردن مشتری یا فعل ترسیم که برای کشیدن اشکال مختلف بکار گرفته می شود اشاره کرد. به واسطه ی مفهوم چندریختی می توان متدها یا توابعی را نوشت که با وجود نامی یکسان دارای کاربرد متفاوت باشند.
در زبان Java با استفاده از (فراخوانی متدی با نام یکسان ولی پارامترهای مختلف) overloading و (بازنویسی بدنه ی متد کلاس پدر در کلاس فرزند که دارای پارامترها و signature یکسان هستند) overriding مفهوم چندریختی را پیاده سازی می کنیم.
مثال دیگری که می توان به آن اشاره کرد قابلیت صحبت کردن می باشد. برای مثال گربه صدای meow، سگ صدای پارس و اردک صدای quack را تولید می کنند.