برمجة جافاCS602 & GS311 Java Programming I (عمليLAB) اعداد حليمة محمد عطية.أ 2017 خريف 4 محاضرة FB : Ms H Programmer www.msjavaprogrammer.strikingly.com
الوراثة inheritance • هً عملٌة إنشاء classجدٌدة تأخذ خصائص classموجودة مسبقا ً (وراثة) و تضٌف خصائص أخرى لها حسب الحاجة. • تسمى classالموجودة مسبقا ً (القدٌمة) ب ،superclassأما ال classالجدٌدة ف ُتسمى ب.subclass • كل classجدٌدة ( )subclassترث من ال classالقدٌمة ( )superclassكل خصائصها (بٌاناتها) و سلوكها (دوالها). • فً لغة جافا ،كل subclassجدٌدة ترث من superclassقدٌمة واحدة فقط .و لٌس كما فً لغة C++التً تتمٌز بالوراثة المتعددة. • فً الغالبٌ subclass ،كون اكبر حجما ً من ،superclassلكن ل superclassكائنات أكثر.
: . . .
class
: )optional
(
Access modifier { ………………….. }
class
:superclass subclass extends subclass
class
.1 .2 .3
class-name extends
: superclass
class-name
الوراثة inheritance • ثانٌا ً :استخدام الكلمة المحجوزة معدل الوصول protected مع المتغٌرات و الثوابت الموجودة فً superclassلكً تسمح لكل subclassمنها بالوصول الٌها. • ثالثا ً :استخدام الكلمة المحجوزة ( ) superالستدعاء دالة بناء موجودة فً ال superclassمن قبل دالة بناء موجودة فً subclassو امكانٌة تمرٌر قٌم (بٌانات) إلٌها ،كما ٌمكن أن ُتستخدم ال superللتمٌز بٌن متغٌرات superclassو subclassالمتشابهة.
مالحظات: • • • • •
كل objectمن subclassهو objectمن .superclass ٌمكن أن ٌكون ل superclassأكثر من ،subclassو لكن لٌس العكس. ٌمكن تمثٌل العالقة بٌن ال superclassو subclassب is .relationship كل ٌ classمكن أن ترث من ال classالتً تسبقها (التسلسل الهرمً). تعتبر ال object classهً ال classاالم الرئٌسٌة الموجودة فً مكتبة جافا ( )superclassألي classفً البرنامج فً حالة عدم تحدٌد .superclassو أي classفً برنامج جافا ترث ضمنٌا ً من object classالرئٌسٌة .
:مالحظات object class toString() :
printf public String toString() { return String.format(“ } :
Object-name.toString();
.
“,
); toString()
.1
overriding methods الدوال الزائدة subclass superclass ) superclass ( subclass ( subclass ) .overriding methods .) subclass superclass super . subclass .overriding methods overriding : overriding ) ( Super.method-name ( parameters ) ;
(
سؤال المحاضرة: • شركة بها نوعان من الموظفٌن ،موظف عمولة حٌث ٌتقاضى مبلغ من المال (عمولة) مقابل تسوٌق منتج الشركة، و موظف مرتب و عمولة حٌث ٌتقاضى مرتب من الشركة مع مبلغ من المال (عمولة) مقابل تسوٌق منتج الشركة أٌضا ً. اكتب برنامج بلغة جافا مستخدما ً ( & inheritance ٌ )overriding methodقوم بالتالً: • عرض بٌانات كل موظف. • حساب و عرض اجمالً ما ٌتقاضاه كل موظف اذا علمت ان نسبة العمولة هً .0.1