PDA

View Full Version : سوال: استاتیک بودن یک Vitrual



irpersian20
شنبه 03 مرداد 1394, 04:48 صبح
سلام
خوب اگر یک تابع static باشد، اجازه نمی دهد که ما ان را به صورت virtual بنویسیم.
سوال این هست که اگر این اجازه رو به ما می دادند که استاتیک ها رو vitrual بنویسیم و سپس بتوانیم override کنیم. چه مشکلی پیش می امد؟ چه چیزی نقض میشد که این امکان رو گرفتند از برنامه نویس؟

RmeXXXXXXXXX
شنبه 03 مرداد 1394, 16:01 عصر
مقادیر و متدهای استاتیک مربوط به شی نیستند و و در قسمت کد ذخیره و اجرا میشوند. اثبات سریع: شما نمیتوانید از طریق یک شی به عناصر استاتیک دسترسی داشته باشید.
یک شی در حافظه علاوه بر مقادیر متغیر ها خود نیازی به فضای برای نگهداری کدها و خواص و ویژگی های نوع خود نیز دارد. عناصر استاتیک جزء دسته دوم هستند.
در کل: استاتیک ها از اشیاء و مفاهیم شی گرا مبرا هستند.

ناامید
شنبه 03 مرداد 1394, 16:11 عصر
استاتیک ها همون اول فضاهای سیستمی بهشون اختصاص داده میشه پس باید همون اول کامل بشن.

RmeXXXXXXXXX
شنبه 03 مرداد 1394, 16:36 عصر
دقیقاً. اگر برای یک کلاس سازنده استاتیک تعریف کنید متوجه خواهید شد که این سازنده یک زمانی (نامعلوم) و درست قبل از اولین دسترسی یا صدا زدن کلاس اجرا خواهند شد. نوع های داده ای مقداری هم وراثت ندارند چرا؟ آیا نمیشه اینکار رو کرد یا مفاهیم و قواعد مانع اینکار میشوند؟

ناامید
شنبه 03 مرداد 1394, 20:27 عصر
دقیقاً. اگر برای یک کلاس سازنده استاتیک تعریف کنید متوجه خواهید شد که این سازنده یک زمانی (نامعلوم) و درست قبل از اولین دسترسی یا صدا زدن کلاس اجرا خواهند شد. نوع های داده ای مقداری هم وراثت ندارند چرا؟ آیا نمیشه اینکار رو کرد یا مفاهیم و قواعد مانع اینکار میشوند؟

بله مفهوم استاتیک اجازه ارث بری رو نمیده وقتی یک مقدار همیشه وجود داره و میشه ازش استفاده کرد نیازی به ارث بری از اون نیست.