اول یدونه اینترفیس از رفتاری که میخوایم قابلیت پیاده سازی های متفاوت داشته باشد درست میکنیم
بعدش با ارث بری از اینترفیسمون؛ تابع اونرو به شکل های دلخواه پیاده سازی میکنیم
الان وقتشه که یه کلاس والد برای کلاینت های خودمون ایجاد کنیم و از اینترفیس رفتارمون یه فیلد بسازیم و بعد دو تابع fight و setWeapon رو با اون فیلد استفاده و مقدار دهی کنیم
من از قصد تابع fight رو به شکل virtual تعریف کردم که بشه بدنه دیفالت براش تعریف کرد و هر جا لازم شد با اورراید کردنش تغییرش داد
و بعد دو کلاینت Soldier و Queen رو با ارث بری از کلاس کاراکتر میسازیم
در کلاس Queen تابع fight اورراید شده تا بشه رفتار متمایز براش تعریف کرد