💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمدصادق صرافیان
سطح دسترسی صفتها و مثال کلاس انتزاع
سعید شاهینی حل شده توسط سعید شاهینی

سلام استاد و خسته نباشید

 

در تعریف مفهوم کلاس انتزاع Animal آیا دلیل خاصی داشت که خصوصیتها رو  از نوع private نوشتید، یا نه ؟

 

اگه ما پیاده سازی موبایل بانک داشته باشیم ، یک کلاس داریم واسه انتقال پول . ممکنه چندتا حساب داشته باشم داخل بانک، که از همشون می‌تونیم انتقال بدیم ...، و از طرفی نوع انتقال ممکنه بین دوتا از حسابای خودمون باشه، کارت به کارت باشه یا از طریق شبا باشه.... حالا کلاس انتقال پول می‌تونه از نوع Abstract class باشه ،درسته؟ و متد نوع انتقال هر کدوم یه اینترفیس باشه  که هر حساب بتونه انواع انتقال پول رو impelement کنه.. 

درست متوجه شدم ؟

یا اینکه کلا نیازی نیست که عمل انتقال پول یک کلاس انتزاع باشه، ولی نوع انتقال می‌تونه از نوع اینترفیس باشه ؟

محمدصادق صرافیان ۱۱ فروردین ۱۳۹۹، ۰۰:۵۲

سلام وقت بخیر،

بله تا حدودی درسته. زمانی که چند مدل پیاده سازی برای یک مفهوم (انتقال پول) داریم، از مفهوم انتزاع استفاده می‌شه که حالا می‌شه abstract باشه یا ممکنه interface باشه، چون بستگی به سناریو واقعی نحوه انتقال پول داره. مثلا اگر همه متدهای انتقال پول یک سری خصوصیات مشترک داشته باشند، از کلاس abstract استفاده می‌شه.

اما در مورد کلاس انتقال پول نیازی به تعریف کلاس abstract نیست، چرا که این کلاس یک نمونه از اینترفیس متد انتقال پول رو به عنوان ورودی دریافت می‌کنه و پردازش رو انجام می‌ده.

بهترین پاسخ
سعید شاهینی ۱۱ فروردین ۱۳۹۹، ۰۸:۲۰