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

با این روش خصوصیات کلاس کلی را در کلاس جزیی داریم و نیازی نیست دوباره آنها را در کلاس فرزند تعریف کنیم.

نکته ای که وجود دارد این است که نیازی به تعریف دوباره خصوصیات نیست اما می توانیم آن را با ویژگی های جدید اضافی بازنویسی کنیم.
مثال: فرض کنید شما قصد تعریف کلاسی را دارید که مربوط به ساخت ماشین است.بنابراین اقدام به ساخت کلاس کلی تر می کنیم تا ویژگی های عمومی که بین همه خودروها را داراست شامل شود.حال برای خودرویی خاص یک کلاس جدید تعریف می کنیم که از کلاس کلی تر خودرو خصوصیاتی را به ارث می برد.

در این حالت از طریق کلاس فرزند می توانیم به خصوصیات کلاس پدر حتی در حالت static دسترسی پیدا کنیم.

 

نحوه ارث بری

برای ارث بری یک کلاس از کلاس دیگر باید از کلمه کلیدی extends در کلاسی که به ارث بردن دارد استفاده کنیم.

مثال:

 

فایده استفاده از ارث بری

  • بالا بردن سرعت اجرا برنامه
  • کاهش کد نویسی
  • کد نویسی راحتتر و سریعتر

 

خصوصیاتی که بصورت public یا protected در کلاس پدر تعریف می شوند خیلی راحت از طریق کلاس فرزند در دسترس هستند.

خصوصیاتی که بصورت private تعریف می شوند از طریق کلاس فرزند به هیچ وجه در دسترس نیستند.

 

نحوه دسترسی و بازنویسی خصوصیات متد پدر در کلاس فرزند

در زبان برنامه نویسی به کلاس پدر parent گفته می شود.

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

مثال:

 

استفاده از خصوصیات کلاس پدر در درون کلاس فرزند

در این مثال با استفاده از ساخت شی از کلاس فرزند به متد کلاس پدر دسترسی داریم.

 

دسترسی به خصوصیات کلاس parent از طریق کلاس فرزند

در صورتی که بخواهیم از درون کلاس فرزند به تابع کلاس پدر یا یک مقدار static در کلاس پدر دسترسی پیدا کنیم باید از دستور ::parent در کلاس فرزند استفاده کنیم.

در صورتی که خصوصیت پدر از نوع public یا protected باشد می توان از دستور this$ در کلاس فرزند استفاده کنیم.

مثال:

 

نمونه دسترسی با دستور ::parent به خصوصیت استایک کلاس پدر از طریق کلاس فزرند

دیدگاه خود را بیان کنید

این ایمیل برای عموم منتشر نمی شود