پرش به محتوای اصلی
مسیر تخصصی جاوا و Spring
درخواست پروژهارتباط با ماراهنما
جاواپرو v1.2.14یاد بگیر، تمرین کن، حرفه‌ای بساز
خانهدوره‌هاآموزش رایگانوبلاگمدرس‌هاخدمات
خانه♨️ جلسه بیستم - آموزش وراثت در زبان برنامه نویسی جاوا
آموزش برنامه نویسی »

♨️ جلسه بیستم - آموزش وراثت در زبان برنامه نویسی جاوا

اگه تاحالا منبع ساده و راحتی برای یادگیری ارث بری در جاوا پیدا نکردی کلیک کنید!

۱۱ دقیقه مطالعهآموزش برنامه نویسی »آموزش جاوا و انجام پروژه های برنامه نویسی
♨️ جلسه بیستم - آموزش وراثت در زبان برنامه نویسی جاوا
محتوای منتخب جاواپرو

خلاصه مطلب

اگه تاحالا منبع ساده و راحتی برای یادگیری ارث بری در جاوا پیدا نکردی کلیک کنید!
نوع محتوامقاله آموزشی
موضوعآموزش برنامه نویسی »
زمان مطالعه۱۱ دقیقه
آخرین ویرایش۳۰ اردیبهشت ۱۴۰۴

فهرست جلسات دوره مقدماتی جاوا

مقدمه اول | جاوا چیست؟

مقدمه دوم | تاریخچه جاوا

مقدمه سوم | ویژگی‌های زبان جاوا

جلسه اول | راهنمای دانلود و نصب JDK

جلسه دوم | اجرای یک برنامه جاوا در Notepad

جلسه سوم | راهنمای دانلود و نصب Eclipse

جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse

جلسه پنجم | متغیر ها در جاوا

جلسه ششم | تغییر فونت محیط Eclipse

جلسه هفتم | عملگر‌های پایه ای جاوا

جلسه هشتم | دستورات شرطی

جلسه نهم | اشیا و کلاس ها

جلسه دهم | ورودی گرفتن

جلسه یازدهم | حلقه‌های کنترلی

جلسه دوازدهم | کلمه کلیدی static

جلسه سیزدهم | کلاس Math

جلسه چهاردهم | کلاس String

جلسه پانزدهم | آرایه‌های یک بعدی

جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)

جلسه هفدهم | متدها در جاوا

جلسه هجدهم | کلمه کلیدی this

جلسه نوزدهم | کلاس‌های داخلی

جلسه بیستم | ارث بری در جاوا

جلسه بیست و یکم | کلمه کلیدی final

جلسه بیست و دوم | Overriding در جاوا

جلسه بیست و سوم | Polymorphism( چند ریختی)

جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید

جلسه بیست و پنجم | Abstraction( انتزاع)

جلسه بیست و ششم | Encapsulation(کپسوله سازی)

جلسه بیست و هفتم | اینترفیس (Interface)

جلسه بیست و هشتم | کلاس Random

جلسه بیست و نهم | Exceptions (استثناها)

جلسه سی ام | کار با فایل در جاوا(Files and I/O)

جلسه سی و یکم | کلاس InputStreamReader

جلسه سی و دوم | کلاس OutputStreamWriter

جلسه سی و سوم | کلاس BufferedReader

جلسه سی و چهارم | کلاس BufferedWriter

جلسه سی و پنجم | Serialization در جاوا

جلسه سی و ششم | چندنخی(Multithreading)

جلسه سی و هفتم | آرایه دو بعدی در جاوا

جلسه سی و هشتم | کلاس ArrayList در جاوا

جلسه سی و نهم | Non Access Modifier در جاوا

دوره رایگان مقدماتی زبان جاوا
دوره رایگان مقدماتی زبان جاوا

لیست دوره های آکادمی جاوا پرو

دوره پرتاب | آموزش پیش نیازهای قبل از شروع برنامه نویسیدوره مقدماتی زبان برنامه نویسی جاوادوره جامع شاهکار پیشرفته جاوادوره جامع طلایی Spring Coreدوره آموزش فریمورک Spring Bootدوره پروژه محور Spring Boot - سیستم دانشگاهدوره جامع دژبان Spring securityدوره جامع نخبگان معماری میکروسرویس با Java و Spring Boot

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

ارث بری یا وراثت! ارث بری در برنامه نویسی جاوا یعنی چه؟!!! ارث بری یعنی یک کلاس از خصوصیات ( متدها و متغیرهای) کلاس دیگر استفاده کند! ارث بری در جاوا مثل دنیای واقعی هست!!!! بزارید با مثالی از دنیای واقعی این مبحث را جا بندازم:

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

مثال: فرض کنید دو کلاس به نام A و B داریم،در صورتی کلاس A پدر کلاس B و B فرزند کلاس A هستش که کلاس B کلاس A را به ارث ببرد!!!!خب چطور یک کلاس می تواند کلاس دیگر را به ارث ببرد؟!!! پاسخ در ادامه آموزش!

کلمه کلیدی extends : با استفاده از کلمه کلیدی extends یک کلاس می تواند ویژگی ها و رفتار های کلاس دیگر را به ارث ببرد.یعنی یک کلاس با استفاده از این کلمه کلیدی می تواند خودش را فرزند کلاس دیگر جا بزند! و اون کلاس نقش پدرش را بازی کند. نحوه به ارث بردن دو کلاس را در زیر مشاهده میکنیم:

package javalike ; public class Child extends parent { } class Parent { }

✔ در این کد برنامه، کلاس Child با استفاده از کلمه کلیدی extends کلاس Parent را به ارث برده است که با این کار کلاس Child فرزند کلاس Parent و کلاس Parent پدر کلاس Child شده است،به گونه ای که تمامی خصویات،ویژگیها و رفتار های کلاس Parent برای کلاس Child قابل دستیابی هستش.چیزی شبیه رابطه جعفر با پدرش 😊

✔ در اصطلاحات ارث بری یا وراثت به کلاس پدر ،کلاس super،کلاس بزرگ،کلاس اصلی،کلاس پایه،پدربزرگ یا هر چیزی که نشان از بزرگی داره میگن 😊 و به کلاس فرزند،کلاس sub ،زیر کلاس میگن و هر چیزی که جزیی از کل را نشان دهد.

🔵 در زیر نمونه کد دیگر که تنها اسمشون فرق میکنه مشاهده میکنید:

class Super { } class Sub extends Super { }

✔ قبل از کلمه کلیدی extends ، نام کلاس فرزند (کلاسی که قصد داره از متغیرها و متدهای کلاس دیگر استفاده کند) و بعد از آن نام کلاس پدر (کلاسی که قراره یک کلاس از ویژگی ها و رفتارش استفاده ببرد) قرار میگیرد.یعنی این کلمه تنها در کلاس فرزند استفاده می شود برای به ارث بردن کلاس پدر.

class A { } class B extends A { }

✔ کلاس B فرزند کلاس A و کلاس A پدر کلاس B هستش، زیرا کلاس B کلاس A را به ارث برده است.

🔵 در زیر یک مثال ساده کاربردی ارث بری یک کلاس از کلاس دیگر را بررسی میکنیم:

package javalike ; class Calculation { int z; public void addition(int x, int y) { z = x + y; System.out.println("The sum of the given numbers:"+z); } public void Subtraction(int x, int y) { z = x - y; System.out.println("The difference between the given numbers:"+z); } } public class My_Calculation extends Calculation { public void multiplication(int x, int y) { z = x * y; System.out.println("The product of the given numbers:"+z); } public static void main(String args[]) { int a = 20, b = 10; My_Calculation demo = new My_Calculation(); demo.addition(a, b); demo.Subtraction(a, b); demo.multiplication(a, b); } }

خروجی:

The sum of the given numbers:30 The difference between the given numbers:10 The product of the given numbers:200

✔ در این مثال دو کلاس به نام های Calculation و My_Calculation داریم،که کلاس My_Calculation کلاس Calculation را به ارث برده است،و طبق قانون رسما کلاس My_Calculation فرزند کلاس Calculation می شود و تمامی متغیرها و متدهای کلاس پدر یعنی Calculation برای کلاس فرزند یعنی My_Calculation قابل دستیابی است.

✔ کلاس Calculation دارای یک متغیر از نوع عدد صحیح به نام z و دو متد addition و Subtraction هستند که هر دو متد دو پارامتر به عنوان ورودی میگیرن و اولی حاصل جمع و دومی حاصل تفریق دو عدد را در خروجی چاپ میکنند.

✔ کلاس My_Calculation دارای یک متد به نام multiplication می باشد که دو عدد صحیح از پارامتر ورودی خود میگیرد و حاصلضرب دو عدد را در خروجی چاپ میکند، و همچنین دارای متد main برای اجرای برنامه هستش،در متد main این کلاس دو متغیر محلی از نوع عدد صحیح به نام های a,b تعریف و مستقیم مقداردهی کرده ایم.بعد یک شی از کلاس My_Calculation به نام demo ایجاد کرده ایم.حال با شی demo متدهای این کلاس یعنی addition, Subtraction, multiplication را صدا زده ایم!!! اما یک نکته مهم!!!در بدنه کلاس ما متدهای addition, Subtraction پیاده سازی که نشده؟!!!چرا برنامه خطا نمیده؟!! پاسخش اینه که چون کلاس My_Calculation کلاس Calculation را به ارث برده است یعنی کلاس My_Calculation فرزند کلاس Calculation می باشد و طبق قانون ارث بری وقتی یک کلاس کلاس دیگر را به ارث می برد می تواند از تمامی متدها و ویژگی های اون کلاس دسرسی داشته باشد بدون این که نیاز به پیاده سازی آنها در کلاس خود داشته باشد یعنی این متدها از پدر و استفاده از فرزند!مانند این است که پراید مال پدر جعفر بود اما جعفر هم ازش استفاده میکرد!!

آموزش وراثت در جاوا به زبان ساده
آموزش وراثت در جاوا به زبان ساده

✔ در این برنامه وقتی ما یک شی از کلاس My_Calculation میسازیم،علاوه بر این که این شی حاوی ویژگی ها و رفتار های کلاس My_Calculation هستش،یک کپی از محتویات کلاس پدر خود Calculation را نیز در بر دارد،به همین خاطر از طریق شی ساخته شده از کلاس فرزند یعنی My_Calculation می توان به ویژگی ها و رفتار های کلاس پدر یعنی Calculation دسرسی داشت.این مفهوم بصورت شکل در زیر آمده است:

کلمه کلیدی super : کلمه کلیدی super شبیه کلمه کلیدی this هستش.در زیر جاهایی که کلم ه کلیدی super استفاده می شود آمده است:

یادآوری : اعضای کلاس یعنی چه؟ به متغیرها و متدهای درون بدنه یک کلاس اعضای کلاس گفته می شود. فرق گذاشتن بین اعضای هم نام کلاس پدر و فرزند: هنگامی که یک کلاس،خصوصیات (متغیرها و متدها) کلاس دیگری را به ارث می برد، اگر اعضای کلاس پدر با اعضای کلاس فرزند همنام باشد،برای فرق گذاشتن بین ویژگی ها و رفتارهای کلاس پدر و فرزند از کلمه کلیدی super برای صدا زدن متغیرها و متدهای کلاس پدر استفاده میکنیم.

super.variable; super.method();

✔ با کلمه کلیدی super می توان متغیرها و متد های کلاس پدر را صدا زد و با این کار بین متغیرها و متدهای همنام کلاس پدر و فرزند فرق میگذاریم که از یکدیگر قابل تشخیص شوند.

در دوره پیشرفته برنامه نویسی جاوا به صورت ویدئویی به موضوع وراثت(Inheritance) در جاواپرداخته ایم.

در مثال زیر کارب رد کلمه کلیدی super را بررسی میکنیم:

package javalike; class Super_class { int num = 20; // display method of superclass public void display() { System.out.println("This is the display method of superclass"); } } public class Sub_class extends Super_class { int num = 10; // display method of sub class public void display() { System.out.println("This is the display method of subclass"); } public void my_method() { // Instantiating subclass Sub_class sub = new Sub_class(); // Invoking the display() method of sub class sub.display(); // Invoking the display() method of superclass super.display(); // printing the value of variable num of subclass System.out.println("value of the variable named num in sub class:"+ sub.num); // printing the value of variable num of superclass System.out.println("value of the variable named num in super class:"+ super.num); } public static void main(String args[]) { Sub_class obj = new Sub_class(); obj.my_method(); } }

خروجی:

This is the display method of subclass This is the display method of superclass value of the variable named num in sub class:10 value of the variable named num in super class:20

✔ در این برنامه دو کلاس به نام های Super_class و Sub_class داریم، کلاس Sub_class فرزند (زیر کلاس) کلاس Super_class می باشد،زیرا کلاس Sub_class ،کلاس Super_class را به ارث برده است یعنی کلاس Super_class پدر کلاس Sub_class هستش و کلاس Sub_class به تمام ویژگی ها و رفتار های کلاس Super_class دسرسی دارد.

✔ کلاس Super_class دارای یک متغیر از نوع عدد صحیح به نام num ویک متد که پیامی را در خروجی چاپ میکند به نام display دارد.

✔ کلاس Sub_class نیز یک متغیر از نوع عدد صحیح و یک متد همنام با پدر خود و متد دیگری به نام my_method دارد!!!

Sub_class sub = new Sub_class(); sub.display(); super.display();

✔ در بدنه کلاس Sub_class ، درون متد my_method ما یک شی از کلاس Sub_class به نام sub ایجاد کرده ایم.در بدنه این متد ،با استفاده از شی sub ، متد display درون کلاس Sub_class را صدا زده ایم و با کلمه کلیدی super متد display درون کلاس پدر Sub_class یعنی Super_class را صدا کرده ایم.در اینجا با وجود همنام بودن متد کلاس فرزند و پدر با استفاده از کلمه کلیدی super بین متد فرزند و پدر فرق گذاشته ایم با این کار متدهای همنام بین پدر و فرزند قابل تشخیص می شوند.

System.out.println("value of the variable named num in sub class:"+ sub.num); System.out.println("value of the variable named num in super class:"+ super.num);

✔ در اینجا نیز متغیر از نوع عدد صحیح در کلاس فرزند (Sub_class) و کلاس پدر (Super_class) همنام می باشد پس برای تمایز قائل شدن و قابل تشخیص بودن این متغیر که آیا مربوط به پدر (Super_class) هست یا فرزند(Sub_class) از کلمه کلیدی super برای صدا زدن متغیر کلاس پدر (Super_class) استفاده کرده ایم.برای صدا زدن متغیر num مربوط به کلاس فرزند(Sub_class) از شی ایجاد شده از کلاس فرزندمون(Sub_class) یعنی sub استفاده کرده ایم.در خروجی مقدار این متغیر برای کلاس پدر (Super_class) و فرزند(Sub_class) متفاوت است یعنی برای کلاس فرزند(Sub_class) مقدار 10 و برای کلاس پدر (Super_class)این متغیر مقدارش 20 می باشد.پی در اینجا با وجود همنام بودن متغیر کلاس پدر (Super_class) و فرزند(Sub_class) با کلمه کلیدی super بین ویژگی همنام پدر (Super_class) و فرزند(Sub_class) تمایز ایجاد کردیم.

public static void main(String args[]) { Sub_class obj = new Sub_class(); obj.my_method(); }

✔ در پایان در متد main کلاس Sub_class یک شی از کلاس فرزند (Sub_class) ایجاد کرده و توسط شی متد my_method را صدا زده ایم با این کار تمام دستورات درون بدنه این متد اجرا می شود.

آموزش آسان و ساده زبان برنامه نویسی جاوا
آموزش آسان و ساده زبان برنامه نویسی جاوا

این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید) لینک دانلود

مشاهده لینک اصلی
تصویر مرتبط با ♨️ جلسه بیستم - آموزش وراثت در زبان برنامه نویسی جاوا
مشاهده لینک اصلی
تصویر مرتبط با ♨️ جلسه بیستم - آموزش وراثت در زبان برنامه نویسی جاوا
عضو کانال تلگرام
برچسب‌هاآموزش برنامه نویسی »آموزش زبان جاوا »آموزش جاوا »آموزش وراثت در جاواآموزش ارث بری در جاواآموزش مفاهیم جاوامفهوم ارث بری در جاواکلمه کلیدی extends در جاواکلمه کلیدی super در جاواصدا زدن سازنده کلاس پدرIS A Relationshipرابطه IS A در جاوااصطلاح IS A در جاواآموزش روان زبان جاواارث بری در جاوا
دسترسی سریع

فهرست مطلب

۱فهرست جلسات دوره مقدماتی جاوا۲مقدمه اول | جاوا چیست؟۳مقدمه دوم | تاریخچه جاوا۴مقدمه سوم | ویژگی‌های زبان جاوا۵جلسه اول | راهنمای دانلود و نصب JDK۶جلسه دوم | اجرای یک برنامه جاوا در Notepad۷جلسه سوم | راهنمای دانلود و نصب Eclipse۸جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse۹جلسه پنجم | متغیر ها در جاوا۱۰جلسه ششم | تغییر فونت محیط Eclipse۱۱جلسه هفتم | عملگر‌های پایه ای جاوا۱۲جلسه هشتم | دستورات شرطی۱۳جلسه نهم | اشیا و کلاس ها۱۴جلسه دهم | ورودی گرفتن۱۵جلسه یازدهم | حلقه‌های کنترلی۱۶جلسه دوازدهم | کلمه کلیدی static۱۷جلسه سیزدهم | کلاس Math۱۸جلسه چهاردهم | کلاس String۱۹جلسه پانزدهم | آرایه‌های یک بعدی۲۰جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)۲۱جلسه هفدهم | متدها در جاوا۲۲جلسه هجدهم | کلمه کلیدی this۲۳جلسه نوزدهم | کلاس‌های داخلی۲۴جلسه بیستم | ارث بری در جاوا۲۵جلسه بیست و یکم | کلمه کلیدی final۲۶جلسه بیست و دوم | Overriding در جاوا۲۷جلسه بیست و سوم | Polymorphism( چند ریختی)۲۸جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید۲۹جلسه بیست و پنجم | Abstraction( انتزاع)۳۰جلسه بیست و ششم | Encapsulation(کپسوله سازی)۳۱جلسه بیست و هفتم | اینترفیس (Interface)۳۲جلسه بیست و هشتم | کلاس Random۳۳جلسه بیست و نهم | Exceptions (استثناها)۳۴جلسه سی ام | کار با فایل در جاوا(Files and I/O)۳۵جلسه سی و یکم | کلاس InputStreamReader۳۶جلسه سی و دوم | کلاس OutputStreamWriter۳۷جلسه سی و سوم | کلاس BufferedReader۳۸جلسه سی و چهارم | کلاس BufferedWriter۳۹جلسه سی و پنجم | Serialization در جاوا۴۰جلسه سی و ششم | چندنخی(Multithreading)۴۱جلسه سی و هفتم | آرایه دو بعدی در جاوا۴۲جلسه سی و هشتم | کلاس ArrayList در جاوا۴۳جلسه سی و نهم | Non Access Modifier در جاوا
ادامه مسیر

پیشنهاد جاواپرو

موضوع را با آموزش‌های مرتبط ادامه دهید و نکته‌های کاربردی را در مسیر خود نگه دارید

مشاهده دوره‌ها
مطالب پیشنهادی

ادامه مطالعه

xدسته‌بندی نشده
۱۱ دی ۱۳۹۸ مطالعه کوتاه

x

پادکست شماره 3 – راه های کسب درآمد از برنامه نویسی

مطالعه مطلب
پادکست شماره 3 - راه های کسب درآمد از برنامه نویسیپادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 3 - راه های کسب درآمد از برنامه نویسی

در این پادکست برنامه نویسی به شیوه ها و راه های کسب درآمد از برنامه نویسی پرداخته ایم. یک کاغذ و قلم بردارید و به پادکست گوش بدید.

مطالعه مطلب
پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟پادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟

در این پادکست برنامه نویسی یاد میگیریم که چگونه وارد فضای برنامه نویسی شویم و تخصص برنامه نویسی را به دست آوریم.

مطالعه مطلب
جاواپرومرجع تخصصی یادگیری و توسعهٔ جاوا

تجربه‌ای منظم، ساده و حرفه‌ای برای یادگیری عمیق جاوا، Spring و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

همه دوره‌هاآموزش رایگانمسیر یادگیریمدرس‌ها

جاواپرو

درباره ماخدمات تخصصیدرخواست پروژهبلاگ فنی

پشتیبانی

تماس با ماپرسش‌های متداولقوانین و حریم خصوصیبروزرسانی‌های جاواپروثبت تیکت
خرید امنپرداخت فقط در درگاه رسمیپشتیبانی آموزشیمسیر ارتباط شفاف و پیگیری‌پذیردسترسی پایداروب‌اپ واکنش‌گرا روی همه دستگاه‌ها
© ۱۴۰۵ جاواپرو؛ همه حقوق محفوظ استتوسعه توسط پایاپینگ
خانهدوره‌هاسبد