קודם כל
אני לא מבין מה הקשר בין override למה שכתבת פה. דבר שני, לבחורצ'יק ששאל את השאלה: אם יש לך מתודה שמדפיסה עיגול. כרגע היא מדפיסה סתם עיגול, אבל בעתיד היא תהיה מסוגלת להדפיס עיגול בצבע מסוים. כרגע כביכול כל מה שאתה צריך זה רק
void Print()
אבל בעתיד כמו שאמרתי אתה תרצה
void Print(string color)
במידה ותעשה שתי גרסאות של המתודה (כלומר גרסה שנייה תבוא נגיד כמה חודשים אחרי הגרסה הראשונה, כל אחד שהשתמש כבר במתודה הישנה בקוד שלו יצטרך להוסיף את הפרמטר השני. אבל אם מלכתחילה תעשה
void Print(string)
ותגיד שכרגע הstring לא משמש לכלום אבל בעתיד הוא יקבע את צבע העיגול, אנשים שישתמשו במתודה שלך לא יצטרכו לשנות את הקריאה אליה כשתסיים לבנות את המתודה הסופית. כלומר אתה תגיד להם "כרגע זה לא משנה מה אתם מעבירים שם בפרמטר, זה תמיד יוצא שחור, אבל תדעו שבגרסה הבאה מה שתעבירו כן ישנה, כך שאם אתה לא רוצים לקמפל מחדש אז תדאגו כבר מעכשיו לכתוב שם את הצבע שאתם רוצים". סבבה?