دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۶
  • اردیبهشت

جلسه ۳۳ : Inheritance در #F

  • دسته‌بندی‌ها :
جلسه ۳۳ : Inheritance در #F
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. با وراثت و ارث بری کلاس های فرزند می توانند از متدها و فیلدهای پدر ارث بری کنند. یعنی از متدها و فیلدهای کلاس های پدر در کلاس فرزندان استفاده می کنیم. بر این اساس Inheritance در #F ، کلاس Base و کلاس Sub در #F رو مورد بررسی قرار خواهیم داد. در متدهای Overriding خواهیم دید که این متدها به ما اجازه می دهد تا در یک کلاس مشتق شده متد های به ارث برده شده از کلاس پایه را مجددا و به صورت تخصصی بازنویسی کرد. و همچنین به طور کلی کلاس Abstract برای فراهم کردن فیلدها و اعضای مشترک تمام زیر کلاس ها ایجاد می شود. با توضیحات هر کدام همراه ما باشید.

      Inheritance در #F

      یکی از مهم ترین مفاهیم در برنامه نویسی شیءگرا، Inheritance در #F یا وراثت است. وراثت به ما اجازه می دهد یک کلاس را با شرایط کلاس دیگر تعریف کنیم، که باعث می شود ایجاد و نگه داری آن در برنامه آسان تر شود. همچنین فرصتی برای استفاده مجدد از کد و زمان اجرای سریع را فراهم می کند.
      هنگام ایجاد یک کلاس، به جای نوشتن اعضا و اعضای جدید کاملا نوین، برنامه نویس می تواند تعیین کند که کلاس جدید باید اعضای کلاس موجود را به ارث ببرد. این کلاس موجود کلاس base یا پایه نامیده می شود و کلاس جدید به عنوان کلاس مشتق شده یا derived نامیده می شود.

      ایده وراثت با رابطه IS-A پیاده سازی می شود. به عنوان مثال، mammal IS A animal, dog IS-A mammal پس dog IS-A animal و غیره.

      بعد از تعریف Inheritance در #F ،در ابتدا میریم سراغ کلاس Base و کلاس Sub در #F .

      کلاس Base و کلاس Sub

      یک subclass از یک کلاس پایه مشتق شده است که قبلا تعریف شده است. یک subclass  اعضای کلاس Base را به ارث می برد، همچنین دارای اعضای خاص خودش نیز است.
      یک زیر کلاس با استفاده از کلمه کلیدی inherit تعریف شده است. (کلاس Base و کلاس Sub در #F)

      مثال : 

      در #F ، کلاس می تواند بیش تر از یک کلاس پایه مستقیم داشته باشد. اگر با استفاده از کلمه کلیدی به ارث بری یک کلاس پایه را مشخص نکنید، کلاس به طور ضمنی از Object به ارث می رسد.

      در #F ، کلاس می تواند بیش تر از یک کلاس پایه مستقیم داشته باشد. اگر با استفاده از کلمه کلیدی به inherit یک کلاس پایه را مشخص نکنید، کلاس به طور ضمنی از Object به ارث می رسد.

      لطفا توجه داشته باشید .

      • روش ها و اعضای کلاس base برای کاربران کلاس مشتق شده مانند اعضای مستقیم کلاس مشتق شده در دسترس هستند.
      • Let bindings و constructor parameters برای یک کلاس خصوصی هستند و بنابراین نمی تواند از کلاس های مشتق شده قابل دسترس باشد.
      • کلمه کلیدی base به نمونه کلاس base اشاره دارد. از آن مانند self-identifier (شناسه خودش) استفاده می شود.

      مثال

      مثال : 

      هنگامی که شما برنامه را کامپایل و اجرا می کنید، برنامه خروجی زیر را تولید می کند.

      مثال : 

      اینم از کلاس Base و کلاس Sub در #F .

      متدهای Overriding

      شما می توانید رفتار پیش فرض روش کلاس base را لغو کرده و آن را در زیر کلاس یا کلاس مشتق شده به طور متفاوتی اجرا کنید.

      به عبارتی متدهای Overriding به ما اجازه می دهد تا در یک کلاس مشتق شده متد های به ارث برده شده از کلاس پایه را مجددا و به صورت تخصصی بازنویسی کنیم.

      متد ها در #F به طور پیش فرض قابل لغو نیست.

      برای لغو روش ها در یک کلاس مشتق شده (کلاس derived)، شما باید روش خود را به عنوان overridable یا قابل لغو با استفاده از کلمات کلیدی abstract و default به شرح زیر اعلام کنید.

      مثال : 

      در حال حاضر، روش Greet از کلاس Person را می توان در کلاس های مشتق شده لغو کرد. مثال زیر این را نشان می دهد.

      مثال

      مثال : 

      هنگامی که شما برنامه را کامپایل و اجرا می کنید، خروجی زیر را تولید می کند.

      مثال : 

      کلاس Abstract

      در بعضی موارد شما نیاز به اجرای ناقص یک شی دارید که نباید در واقع اجرا شود. که بعدها، باید برخی از برنامه نویسان دیگر زیر کلاس های کلاس Abstract را برای اجرای کامل ایجاد کنند.

      برای مثال، کلاس Person در School Management System مورد نیاز نخواهد بود.

      با این حال، Student یا Teacher کلاس مورد نیاز خواهد بود. در چنین مواردی، شما می توانید کلاس Person را به عنوان یک کلاس انتزاعی اعلام کنید.

      خصیصه AbstractClass به کامپایلر می گوید که کلاس دارای اعضای انتزاعی است.

      شما نمی توانید نمونه ای از کلاس انتزاعی ایجاد کنید زیرا کلاس به طور کامل اجرا نمی شود.

      مثال زیر این را نشان می دهد.

      مثال

      مثال : 

      هنگامی که شما برنامه را کامپایل و اجرا می کنید، برنامه خروجی زیر را تولید می کند.

      مثال : 

      کلام پایانی

      درود به همراهان همیشگی سایت پی وی لرن که ما رو تنها نمیزارن. با آموزش زبان برنامه نویسی #F همراهتون هستیم.

      در این قسمت از آموزش وراثت یا Inheritance در #F که یکی از مهم ترین مفاهیم در برنامه نویسی شیءگرا است رو مطرح نمودیم.

      و حال می دونیم که با وراثت و ارث بری کلاس های فرزند می توانند از متدها و فیلدهای پدر ارث ببرند. یعنی از متدها و فیلدهای کلاس های پدر در کلاس فرزندان می توان استفاده نمود.

      کلاس Base و کلاس Sub در #F رو بیان نمودیم . در کلاس Abstract اجرای کامل نداریم و باید برنامه نویسان دیگر زیر کلاس های کلاس Abstract را برای اجرای کامل ایجاد کنند.

      QR:  جلسه ۳۳ : Inheritance در #F
      به اشتراک بگذارید