الميراث في جافا: الطبقة والواجهة

الميراث في جافا هو خاصية بسيطة وقوية في المفهوم الموجه للكائنات ، فهو يسمح لك بإعادة كتابة سمات وأساليب الفئة الأم في فئة الابنة ، وبهذه الطريقة يمكن أن ترث فئة فرعية أخرى أيضا من فئة الابنة. تستخدم Java هذه الخاصية في جميع الفئات.

الكلمة الأساسية المستخدمة للوراثة في java هي  يمدد< / يمتد >. يحظر الوراثة المتعددة ، ولكن يسمح بها للواجهات.

فئة الكائن

عند البرمجة نلاحظ أن الطرق تتكرر في كل مكان مثل: toObject(), يساوي ()< / span > ، < span style = "عائلة الخط: ساعي جديد ، ساعي ، أحادي المسافة ؛" >انتظر () < / امتداد> ... الخ. هذا لأنه في جافا ترث جميع الفئات من الطبقة الفائقة. الكائن< / المدى>  وهو جذر التسلسل الهرمي بأكمله.

التسلسل الهرمي للشجرة الموجهة للكائنات في جافا
ترث جميع الفئات من Object

example

في هذا المثال، أعلنا عن فئة شخص بسمات الاسم والعنوان. ترث كلتا الفئتين الفرعيتين من الشخص: مدير الدرجة الأولى وموظف الدرجة الثانية الذي له راتب سمة إضافي.

< / div>
< / a>< / div>

< / div>
class Person
{
اسم السلسلة العامة ؛
عنوان السلسلة العام ؛
}
يمدد راتب الشخص < br / > {
int ؛
موظف عام (اسم السلسلة ، عنوان السلسلة ، راتب int)
{
this.name = name ؛
this.address=address;
this.salary = الراتب ؛
}
}
class مدير يمتد الشخص < br / > {
المدير العام ()
{
this.name = "الاسم" ؛
this.adresse = "العنوان" ؛
}
}

note:
ترث فئة الابنة الأعضاء المعلنينمحمي < / span> و public ويرث أيضا الأعضاء private< / span> إذا كان في نفس الحزمة مثل الفئة الأصلية.

الكلمة الأساسية الفائقة في java

يمكن توسيع فئة الشخص ليتم توريثها منها إلى فئات فرعية ، مع الأخذ في الاعتبار أنه في هذه الشركة هناك العديد من الوظائف: مهندس ، محاسب ، سكرتير ... إلخ.

نرى الهيكل في شكل تسلسل هرمي ، تساعدنا هذه الشجرة على فهم هيكل برنامجنا. الفرق بين الفئتين المهندس والموظف هو استخدام الكلمة الأساسية الفائقة في المهندس والتي تستدعي منشئ الفئة الأم مباشرة. بشكل افتراضي ، super() يستدعي الشركة المصنعة بدون وسيطات و سوبر (P1 ، P2,...) < / span > يستدعي المنشئ مع الوسيطات.

تستخدم الكلمة الأساسية الفائقة أيضا لاستدعاء طرق الفئة العليا. إليك مثال:

< / div >< div class = "فاصل" النمط = "واضح: كلاهما ؛ محاذاة النص: الوسط؛" >< / a>< / div>
< pre class = "prettyprint lang-java" >class Ingenieur_reseaux يمتد الموظف < br / > {
Ingenieur_reseaux العامة ()
{
super ("name" ، "address" ، 3100) ؛
}

public void concevoir(){
super.concevoir();
System.out.println ("لقد صممت بنية شبكة الشركة") ؛
}
} < / pre>بدون super ، سيتم استدعاء طريقة design () المعلنة في المنشئ Ingénieur_réseaux بدلا من طريقة design() المعلنة في المهندس ، لذلك للإشارة إلى الطريقة الأصلية ، تحتاج إلى إضافة الكلمة الرئيسية  super.

وقت التشغيل:

< pre class = "prettyprint lang-java" > أنا مهندس < br / > لقد صممت بنية شبكة الشركة < / pre>

يسمح لوراثة الواجهة في java< / h2> بالوراثة المتعددة للواجهات.

interface print{
void print();
}
عرض واجهة {
عرض باطل ();
}
interface interfaceIA يمتد الطباعة ، العرض {
باطل imprimer_afficher () ؛
}
class testIA ينفذ interfaceIA{

blank print(){System.out.println("Printing")};
عرض باطل () {System.out.println ("اكتملت الطباعة")} ؛

الفراغ الثابت العام الرئيسي () {
testIA test = testIA جديد () ؛
test.print ();
test.display();
}
} < / قبل>

Advertisement

AdBlock Detected

Please disable your ad blocker and refresh the window to use this website.