بخشی از پاورپوینت
اسلاید 1 :
وراثت Inheritance
اسلاید 3 :
سرفصل موضوعات
وراثت (Inheritance)
سلسلهمراتب کلاسها (Class Hierarchies)
ارتباط IS-A
فرایند مقداردهی اولیه در زیرکلاسها
جایگاه و کاربرد وراثت در طراحی نرمافزار
نمایش وراثت در UML Class Diagram
اسلاید 4 :
آشنایی با مفهوم وراثت Introduction to Inheritance
اسلاید 5 :
سلسلهمراتب کلاسها
مهرهدار
پستاندار
بیمهره
حیوان
ماهی
پرنده
خزنده
دوزیست
حشره
اَبَرکلاس (super class)
زیرکلاسsubclass
اَبَرکلاس و زیرکلاس
اسلاید 6 :
معنای سلسلهمراتب انواع کلاسها
دایره نمونهها (اشیاء) در زیرکلاس محدودتر میشود
زیرکلاس، ويژگیها و رفتار اَبَرکلاس را به ارث میبرد
اصطلاح وراثت و ارثبری (Inheritance)
مثال: هر حیوان، ويژگیهایی مانند «سن» و «وضعیت سلامتی» دارد
این ويژگیها به همه زیرکلاسها به ارث میرسد
همه زیرکلاسهای مستقیم و غیرمستفیم: مهرهدار، بیمهره، ماهی، حشره و .
یعنی هر شیء از زیرکلاسها هم همین ويژگیها را دارد
احتمالاً ويژگیهای دیگری هم دارد (مثلاً هر ماهی «سرعت شناکردن» دارد)
مثال: هر حیوان، رفتارهایی مانند «غذا خوردن» و «جابجا شدن» دارد
پس همه زیرکلاسها هم این رفتارها را دارند (این رفتارها را به ارث میبرند)
اسلاید 7 :
سلسلهمراتب کلاسها (مثال)
نام، سن و .
تدریس
گرفتن درس
معدل
موضوع پایاننامه
اسلاید 8 :
سلسلهمراتب کلاسها (مثال)
کلاسها:
نمونهها:
اسلاید 9 :
انواع عامتر و انواع خاصتر
اَبَرکلاس، نوع عامتری از زیرکلاس است (more general)
زیرکلاس، نوع خاصتری از اَبَرکلاس است (more specific)
تأکید: زیرکلاس و ابرکلاس هر دو «کلاس» هستند
هر شیء از زیرکلاس، شیئی از ابرکلاس هم هست
دانشجو زیرکلاس انسان است
دانشجو نوع خاصتری از کلاس انسان است
(دایره محدودتری از نمونهها را شامل میشود)
همه ويژگیها و رفتارهای انسان در دانشجو هم وجود دارد
مثل: نام، سن، غذاخوردن و . البته دانشجو ويژگیها و رفتارهای دیگر هم دارد
علی علوی یک دانشجو است (یک نمونه، شیء). پس علی علوی، انسان هم هست
اسلاید 10 :
وراثت
چند سلسلهمراتب از انواع (کلاسها) نام ببرید
مثلاً هر یک از موارد زیر چه اَبَرکلاسها و چه زیرکلاسهایی دارد؟
حساب بانکی، کارمند بانک، وام قرضالحسنه
خودرو
ورزشکار
برای هر یک از کلاسهای فوق چند نمونه فرضی نام ببرید
آیا «علی کریمی» زیرکلاس فوتبالیست است؟
خیر. علی کریمی یک نمونه (شیء) است. یک کلاس نیست
زیرکلاس و اَبَرکلاس، هر دو «کلاس» هستند
اسلاید 11 :
واژهشناسی
کلاس اصلی:
کلاس پایه (Base Class)
اَبَرکلاس (Superclass)
کلاس والد (Parent Class)
کلاس وارث:
کلاس مشتق (Derived Class)
زیرکلاس (Subclass)
کلاس فرزند (Child Class)
Rectangle is inherited/derived from Shape
Rectangle is subclass/child of Shape
Shape is the super-class/base-class/parent of Rectangle
(اصطلاحات انگلیسی مهمتر هستند)
Rectangle extends Shape
اسلاید 12 :
نحوه پیادهسازی زیرکلاسها
اسلاید 13 :
پیادهسازی
یادآوری: زیرکلاس همه مشخصات و رفتارهای اَبَرکلاس را به ارث میبرد
یعنی باید همه ويژگیها و متدهای اَبَرکلاس را داشته باشد
این وضعیت را چگونه پیادهسازی میکنید؟
مثال:
اسلاید 14 :
مثال:
اسلاید 15 :
چگونه کلاس Teacher از کلاس Employee ارثبری کند؟
اما کپی متن برنامهها روش بسيار بدی است
راه بهتری برای پیادهسازی وراثت وجود دارد
اسلاید 16 :
وراثت در زبانهای شیءگرا
زبانهای برنامهنویسی شیءگرا تعریف وراثت را ممکن میکنند
از جمله جاوا
از این امکان برای تعریف زیرکلاسها استفاده میشود
بدون این که نیازی به کپی کد از اَبَرکلاس باشد
وراثت یکی از راههای استفاده مجدد از کد است
code reuse
کدی که در اَبَرکلاس نوشته شده، در زیرکلاس بازاستفاده میشود
دوباره نوشته نمیشود
در جاوا، وراثت با کلیدواژه extends معرفی میشود
اسلاید 17 :
مثال:
Teacher t = new Teacher();
t.setName("Ali");
int s = t.getSalary();
کلاس Teacher از کلاس Employee ارثبری میکند
Teacher فرزند یا زیرکلاس Employee است
ويژگیها و متدهای Employee برای Teacher به ارث میرسند
Teacher همه این ويژگیها و متدها را دارد
بدون این که لازم باشد آنها را دوباره تعريف کنیم
مثال:
اسلاید 18 :
مثالهای دیگری برای پیادهسازی وراثت
class Shape{
int color;
int positionX, positionY;
}
class Circle extends Shape{
private int radius;
public double getArea(){
return 3.14*radius*radius;
}
}
class Rectangle extends Shape{
private int width, length;
public double getArea(){
return width*length;
}
}
اسلاید 19 :
UML Class Diagram
اسلاید 20 :
نمودار UML برای کلاسها
UML Class Diagram
نموداری برای توصیف طراحی کلاسها
کاربردهای مختلفی دارد
مثال: تعامل بین طراح و برنامهنویس
نمودار UML قواعد خاصی دارد
مخصوص زبان جاوا نیست
نمودار UML شامل:
متدها و ويژگیهای کلاسها
سطوح دسترسی
روابط بین کلاسها
(وراثت: یکی از انواع رابطه ممکن است)