***براساس اطلاعات اتحادیه مجازی متا شما عضو هیچ یک از گروههای سازمانی متا نیستید *** لطفا در صورت تمایل برای مشارکت و استفاده بهتر از امکانات متا ، فرم عضویت را پرنمایید*** برای این کار برروی همین نوار یا کلمه عضویت کلیک نمایید ...***


بخشهاي فعال

آخرين ارسالهاي هر بخش در همان بخش وجود دارد براي سهولت دسترسي به آخرين مباحث مورد علاقه ، از آخرين ارسالهاي همان بخش استفاده نماييد

 

بخش آزاد اعتياد حسابداري عمران فلسفه کامپيوتر مديريت خانواده روانشناسي زبان خارجه آمار بورس
بخش آزاد اعتياد حسابداري عمران فلسفه کامپيوتر مديريت خانواده روانشناسي زبان خارجه آمار بورس

نویسنده موضوع: کلاس abstract چیست ؟  (دفعات بازدید: 1685 بار)

0 کاربر و 3 مهمان درحال دیدن موضوع.

کلاس abstract چیست ؟
« : نوامبر 02, 2010, 11:09:19 »
+3
کلاسهای abstract  یکی از ابزارهای مهم  شی گرایی است .کلاسهایی که نمی توان از آنها متغیری ساخت . و بصورت کلی دارای ساختار زیر هستند .
نقل قول
Abstract class  classname

{

بدنه کلاس

}

اما کلاس abstract چگونه است ؟

 

1-یک کلاس abstract  شبیه یک کلاس معمولی است . متد ، فیلد و خصوصیت دارد با این تفاوت که نمی توانیم از آن نمونه سازی کنیم ، به عبارتی نمی توانیم متغیری از نوع کلاس abstract  تعریف کرد .

 

2-یک کلاس abstract   شبیه یک اینترفیس است ، اما با دیدی وسیعتر (مفصلا توضیح خواهم داد )

 

3 -یک کلاس abstract  می تواند دارای متدهای abstract باشد که شبیه اینترفیس فقط اعلام می شوند و باید در زیر کلاسها بازنویسی شوند و جزییات آنها نوشته شود .
نقل قول
abstract class Location

    {

public abstract Location(string name);

{
اگر دقت کنیم ، کلاس  abstract    حالتی بین کلاس معمولی و یک Interface  است . که برای فهم کامل آن باید مقایسه ای با  Interface  انجام دهیم تا تفاوت این دو بیشتر برای ما مشخص شود .

 

1-یک کلاس معمولی فقط می تواند از یک کلاس abstract ارث بری کند . در حالی که همان کلاس معمولی می تواند از چندین  Interface  ارث بری کند ( وراثت چند گانه )

 

2-یک Interface  فقط می تواند اعلان متدها و خصوصیتها را داشته باشد اما یک کلاس abstract علاوه بر انها می تواند متدها و خصوصیتهایی با کدهای کامل داشته باشد .

مثال :

نقل قول
abstract class Location

    {

        public Location(string name)

        {

            this.name = name;

        }

 

        public Location[] Exits;

 

        private string name;

        public string Name

        {

            get { return name; }

        }

}

3-عناصر یعنی متدها و خصوصیتها و .. در کلاس  abstract می توانند همانند یک کلاس معمولی دارای سطح دسترسی باشند . بر خلاف Interface

 

4-وقتی شما متدی را به کلاس abstract اضافه می کنید در صورتی که متد شما از نوع abstract نباشد ، اتوماتیک به تمام زیر کلاسها اعمال می شود ، اما در Interface  اگر متدی اضافه کنید باید در تمام زیر کلاسها آن را اعمال کنید و جزییات آن را مشخص کنید .

 

5-کلاسهای abstract مانند یک کلاس معمولی می توانند فیلد و عناصر داشته باشند در حالی که Interface  فاقد این خصوصیت است .
ما عاشق فهم و ادب ومعرفتیم،
ما خاک قدوم هر چه زیبا صفتیم،
http://alaasabzpoush.blogsky.com/

 

موضوعاتی که ممکن است عنوان یا محتوای آن با این موضوع در یکی از تالارهای متا مرتبط باشد

  موضوع / نویسنده پاسخ ها آخرين ارسال
0 پاسخ ها
560 مشاهده
آخرين ارسال مارس 09, 2010, 11:08:28
توسط Elnaz
0 پاسخ ها
740 مشاهده
آخرين ارسال اوت 19, 2010, 14:10:01
توسط اجاقی معز
0 پاسخ ها
1096 مشاهده
آخرين ارسال اكتبر 06, 2010, 10:25:43
توسط CIVILAR
0 پاسخ ها
217 مشاهده
آخرين ارسال دسامبر 09, 2010, 00:42:21
توسط حمید رستمی
0 پاسخ ها
113 مشاهده
آخرين ارسال مارس 02, 2012, 00:07:02
توسط kowkabi
0 پاسخ ها
35 مشاهده
آخرين ارسال مه 04, 2012, 23:05:03
توسط حمید رستمی