تبليغاتX
Free Domains Hosting at .co.nr
آموزش برنامه نویسی کامپیوتر و الکترونیک
آموزش برنامه نویسی کامپیوتر و الکترونیک
اقبال سهرابی(09356614309) پاسخگوی مشکلات شما در زمینه الکترونیک,کامپیوتر و اینترنت می باشد.
خانه آرشیو مطالب تماس با من در صورتی که هر سوال فوری در زمینه کامپیوتر و الکترونیک دارید با شماره 09356614309(اقبال سهرابی) تماس بگیرید
درباره وبلاگ
آموزش C# ، آموزش برنامه نویسی ، آموزش کامپیوتر ، آموزش الکترونیک ، و خرید برخی محصولات بسیار مهم و کاربردی .
راهنمایی جهت ایجاد وبسایت و معرفی بهترین سرویس دهنگان اینترنتی .
و همچنین معرفی بهترین سایتهای تجارت الکترونیکی در ایران.
با تشکر
- اقبال سهرابی -
منوي اصلي
صفحه نخست
آرشيو مطالب
پست الکترونیک
موضوعات مطالب
وبسایت کسب در آمد
تجارت الکترونیکی
آموزش
آموزش هك (Learning Hack)
موبایل
----- آموزش زبان #C ----
زبانهای خارجی
الکترونیک
آرشيو مطالب
نويسندگان
اقبال سهرابی
الناز
سامان A
آقا مجید
بازدید کنندگان
کمال بهرامی
دکتر محسن
فرزاد حسینی
مهسا(بیدار)
پيوندهاي روزانه
Username & Password For NOD 32
حق و صبر
فعال کردن ویندوز XP با استفاده از Windows_xp_Genuine_Advantage دانلود آن
کرمانشاه -راهنمای جامع -
شرکت نانو Nano Kurd
---- وبلاگ آموزش ایرانیان -----
حقوق زن
زندگی !
$$$$ تجارت بدون سرمایه $$$$
برترین وبلاگ شعر دنیا
کلاه برداران و معتبر ترین سایت
برترین تجارت جهان
پيوندها
صبا
مهر
عاشقانه
آموزش الکترونیک
وبلاگ آموزش ایرانیان
آموزش آنلاین زبان انگلیسی
آموزش درس مبانی علم رايانه
پلکهای خیس
تقدیم به عاشقان
وبلاگی دیگر از ما
* آموزش برنامه نويسي ايرانيان *
عکسهای عاشقانه،عرفانی ومختلف
بزرگترين فروشگاه فيلم و سريال
یه روزایی ...
تجارت در ایران مارکت سنتر
خرس قهوه ای (مهسا)
قالب وبلاگ
امكانات





Powered by WebGozar

درس هشتم – ارث‌بري كلاس‌ها

 

در اين درس درباره ارث‌بري در زبان برنامه‌نويسي C# صحبت خواهيم كرد. اهداف اين درس بشرح زير مي‌باشند :

ü      پياده‌سازي كلاسهاي پايه (Base Class)

ü      پياده‌سازي كلاسهاي مشتق شده (Derived Class)

ü      مقدار دهي كلاس پايه از طريق كلاس مشتق شده

ü      فراخواني اعضاي كلاس پايه

ü      پنهان‌سازي اعضاي كلاس پايه

 

ارث‌بري يكي از مفاهيم اساسي و پايه شي‌گرايي است. با استفاده از اين ويژگي امكان استفاده مجدد از كد موجود فراهم مي‌شود. بوسيله استفاده موثر از اين ويژگي كار برنامه‌نويسي آسان‌تر مي‌گردد.

 

ارث‌بري(Inheritance)

using System;

 

public class ParentClass

{

public ParentClass()

{

Console.WriteLine("Parent Constructor.");

}

public void print()

{

Console.WriteLine("I'm a Parent Class.");

}

}

public class ChildClass : ParentClass

{

public ChildClass()

{

Console.WriteLine("Child Constructor.");

}

public static void Main()

{

ChildClass child = new ChildClass();

child.print();

}

}

خروجي اين برنامه بصورت زير است :

Parent Constructor.

Child Constructor.

I'm a Parent Class.

در مثال 1-8 دو كلاس وجود دارد. كلاس بالاي ParentClass و كلاس پائيني ChildClass است.  كاري كه ميخواهيم در اينجا انجام دهيم اينست كه زير كلاسي ايجاد كنيم كه با استفاده از كدهاي موجود در ParentClass عمل نمايد.

 

براي اين منظور ابتدا بايد در اعلان ChildClass مشخص كنيم كه اين كلاس مي‌خواهد از كلاس ParentClass ارث‌بري داشته باشد. اين عمل با اعلان public class ChildClass : ParentClass روي مي‌دهد. كلاس پايه با قرار دادن ":" بعد از نام كلاس مشتق شده معين مي‌شود.

 

C# فقط از ارث‌بري يگانه پشتيباني مي‌نمايد. از اينرو تنها يك كلاس پايه براي ارث‌بري مي‌توان معين نمود. البته بايد اشاره كرد كه ارث‌بري چندگانه تنها از واسطها (Interfaces) امكان‌پذير است كه در درسهاي آينده به آنها اشاره مي‌نماييم.

 

ChildClass دقيقاً توانائيهاي ParentClass را دارد. از اينرو مي‌توان گفت ChildClass يك ParentClass است. (ChildClass IS a ParentClass) ChildClass داراي متد Print() مربوط به خود نيست و از متد كلاس ParentClass استفاده مي‌كند. نتيجه اين عمل در خط سوم خروجي ديده مي‌شود.

 

كلاسهاي پايه به طور خودكار، قبل از كلاس‌هاي مشتق شده نمونه‌اي از روي آنها ايجاد مي‌گردد. به خروجي مثال 1-8 توجه نماييد. سازنده ParentClass قبل از سازنده ChildClass اجرا مي‌گردد.

 

برقراري ارتباط كلاس مشتق شده با كلاس پايه

به مثال 2-8 كه در زير آمده است توجه نماييد.

using System;

 

public class Parent

{

string parentString;

public Parent()

{

Console.WriteLine("Parent Constructor.");

}

public Parent(string myString)

{

parentString = myString;

Console.WriteLine(parentString);

}

public void print()

{

Console.WriteLine("I'm a Parent Class.");

}

}

public class Child : Parent

{

public Child() : base("From Derived")

{

Console.WriteLine("Child Constructor.");

}

public new void print()

{

base.print();

Console.WriteLine("I'm a Child Class.");

}

public static void Main()

{

Child child = new Child();

child.print();

((Parent)child).print();

}

}

خروجي اين برنامه بشكل زير است :

From Derived

Child Constructor.

I'm a Parent Class.

I'm a Child Class.

I'm a Parent Class.

كلاسهاي مشتق شده در طول ايجاد نمونه مي‌توانند با كلاس پايه خود ارتباط برقرار نمايند. در مثال 2-8 چگونگي انجام اين عمل را در سازنده ChildClass نشان مي‌دهد. استفاده از " : " و كلمه كليدي base باعث فراخواني سازنده كلاس پايه به همراه ليست پارامترهايش مي‌شود. اولين سطر خروجي،  فراخواني سازنده كلاس پايه را بهمراه رشته "From Derived" نشان مي‌دهد.

 

ممكن است حالتي رخ دهد كه نياز داشته باشيد تا متد موجود در كلاس پايه را خود پياده‌سازي نماييد. كلاس Child اين عمل را با اعلان متد Print() مربوط به خود انجام مي‌دهد. متد Print() مربوط به كلاس Child، متد Print() كلاس Parent را پنهان مي‌كند. نتيجه اين كار آنست كه متد Print() كلاس Parent() تا زمانيكه عمل خاصي انجام ندهيم قابل فراخواني نمي‌باشد.

 

درون متد Print() كلاس Child، صريحاً متد Print() كلاس Parent را فراخواني كرده‌ايم. اين عمل با استفاده از كلمه كليدي base قبل از نام متد انجام گرفته است. با استفاده از كلمه كليدي base مي‌توان به هر يك از اعضاي public و protected كلاس پايه دسترسي داشت. خروجي مربوط به متد Print() كلاس Child در سطرها سوم و چهارم خروجي ديده مي‌شوند.

 

روش ديگر دسترسي به اعضاي كلاش پايه، استفاده از Casting صريح است. اين عمل در آخرين سطر از متد Main() كلاس Child رخ داده است. توجه داشته باشيد كه كلاس مشتق شده نوع خاصي از كلاس پايه‌اش مي‌باشد. اين مسئله باعث مي‌شود تا بتوان كلاس مشتق شده را مورد عمل Casting قرار داد و آنرا نمونه‌اي از كلاس پايه‌اش قرار داد. آخرين خط خروجي نشان مي‌دهد كه متد Print() كلاس Parent اجرا شده است.

 

به وجود كلمه كليدي new در متد Print() كلاس Child توجه نماييد. اين عمل باعث مي‌شود تا متد Print() كلاس Child متد Print() كلاس پايه‌اش را پنهان نمايد. درصورتيكه از كلمه كليدي new استفاده نشود، كامپايلر پيغام اخطاري را تواليد مي‌كند تا توجه شما را به اين مسئله جلب كند. توضيحات بيشتر در اين زمينه مربوط به مبحث چندريختي (Polymorphism) است كه در درس آينده آنرا بررسي خواهيم نمود.

 

خلاصه

در اين درس با روش ايجاد كلاس پايه و كلاس مشتق شده از آن آشنا شديد. متدهاي كلاي پايه را مي‌توانيد بصورت صريح و يا ضمني فراخواني كنيد. همچنين متوجه شديد كه كلاس مشتق شده نوع خاصي از كلاس پايه است.

 


نوشته شده در پنجشنبه 15 فروردین1381 توسط اقبال سهرابی | لينك ثابت |
عناوين آخرين مطالب ارسالي
» درسهای #c
» بهترین وبسایت کسب در آمد اینترنتی در ایران
» آموزش C#
» آموزش هك (Learning Hack) بهترین سی دی آ موزشی - پرداخت هزینه درب منزل
» پشتیبان گیری از وبلاگ بلاگفا به روشی بسیار سریع تر از خود بلاگفا و مطمئن تر
» مواردی که تا حالا در موبایل نشنیده اید
» پذیرش نویسنده برای وبلاگ
» نرم افزار ارسال SMS گروهی 8 تومانی !
» تکنیکهای تست زنی در کنکور
» آموزش پيشرفته زبان انگليسي
» آموزش جامع تعميرات موبايل پیشرفته
» بهترین وبسایت خرید اینترنتی
» الکترونیک بخش اول
» ره مه زان گیان ها ته وه
» بهترین ویسایت کسب در آمد در ایران
» حذف اطلاعات و فایلها برای همیشه ....
» خدایا کفر نمی گویم
» زبان نگاه
» مضرات استفاده طولانی از موبایل
» مفهوم شبکه سلولی
» ما در کجای این هستی قرار داریم ...
» انواع کدهای موبال
» ترفندهای موبایل
» در مورد شبکه های موبایل
» شعر جدید زندگی انسانها .... Humans Life
» طراحی صفحات وب (ASP.NET)+دانلود کتاب ای اس پی دات نت بطور کامل
» سهام رایگان جهانی
» سخنان عجیب اینشتین
» چگونه Eset smart security را کراک و به روز نماییم ؟
» چگونه Eset smart security را کراک و به روز نماییم ؟

700dolar

اقبال سهرابی

700dolar

http://700dolar.blogfa.com

آموزش برنامه نویسی کامپیوتر و الکترونیک

آموزش برنامه نویسی کامپیوتر و الکترونیک - درس هشتم – ارث‌بري كلاس‌ها

آموزش برنامه نویسی کامپیوتر و الکترونیک

آموزش C# ، آموزش برنامه نویسی ، آموزش کامپیوتر ، آموزش الکترونیک ، و خرید برخی محصولات بسیار مهم و کاربردی .
راهنمایی جهت ایجاد وبسایت و معرفی بهترین سرویس دهنگان اینترنتی .
و همچنین معرفی بهترین سایتهای تجارت الکترونیکی در ایران.
با تشکر
- اقبال سهرابی - اقبال سهرابی(09356614309) پاسخگوی مشکلات شما در زمینه الکترونیک,کامپیوتر و اینترنت می باشد.

آموزش برنامه نویسی کامپیوتر و الکترونیک

قالب بلاگفا