من اصلا نمیخوام حرف شما رو نقض کنم و به احتمال زیاد مشکل هم از منه. فقط میخوام که مفهوم رو درست بفهمم. من از کتاب دیتل C++‎ رو خوندم و در این کتاب هم بحث چند تابع هم نام رو به عنوان overloading ذکر کرده.
مشکل از هیچ کدوم نیست. همونطور که خودتون گفتید این مطالب رو تو کتاب هایی خوندید که مربوط به برنامه نویسی بودن و تو این کتاب ها غالبا توضیح مسائل رو با توجه به روش پیاده سازی بیان میکنن. برای مثال هموطور که برای چند تابع هم نام به اونها overloading گفته شده.
ولی اگر به تئوری این موضوع نگاه کنیم یعنی اصلا قبل از اینکه این پلیمورفیسم تو زبان های برنامه سازی پیاده سازی بشن تو تعریف و تئوری اگر توابع همنامی وجود داشته باشه که کارهای مختلفی انجام بده به اون میگن پلیمورفیسم.
بعضی از کتاب ها که فقط به تشریح مسائل و تئوری بدون در نظر گرفتن چگونگی پیاده سازی پرداختن، اصلا از اصطلاحات برنامه نویسی برای تشریح مسائل استفاده نکردن که باعث بوجود آمدن اختلاط بین مفاهیم یک تئوری و روش پیاده سازی بشه.
مثلا برای پلیمورفیسم از مثال انسان چند شخصیتی استفاده شده و گفتن پلیمورفیسم مثل انسان چند شخصیتی میمونه که براساس شرایط مختلف شخصیت های متفاوتی از خودش نشون میده.
حالا با این تعریف اومدن تو زبان های مختلف امکانات مختلفی برای پیاده سازی گذاشتن مثلا در مورد overloading اگر دقت کنیم میبینیم که دقیقا چیزی هست که تو تعریف تئوری اومده یعنی تابعی با یک نام(همون انسان) در شرایط مختلف کارهای مختلفی انجام میده(شخصیت های مختلفی بروز میده) و من فکر میکنم با توجه به تعریف overloading دقیقا یکی از روش های پیاده سازی پلیمورفیسم باشه.
و در کل هر امکانی که تو زبان های برنامه نویسی وجود داشته باشه و به ما مثلا امکان پیاده سازی چند تابع با یک نام و عملکرد متفاوت بده در تعریف پلیمورفیسم قابل قبول هست.
موفق باشید.