الفرق الرئيسي - الوراثة مقابل الواجهة في Java
Java هي لغة برمجة تم تطويرها بواسطة Sun Microsystems. يمكن استخدام Java لتطوير تطبيقات مختلفة. إنها لغة متعددة النماذج تدعم التوجه الكينوني والمنظم وما إلى ذلك. الميزة الرئيسية لجافا هي أنها تدعم البرمجة الموجهة للكائنات (OOP). يمكن للمبرمج إنشاء فئات وكائنات. هناك أربع ركائز في OOP. هم الوراثة ، تعدد الأشكال ، التجريد والتغليف. الوراثة والواجهات مرتبطة بـ OOP. يتمثل الاختلاف الرئيسي بين الوراثة والواجهة في أن الوراثة هي اشتقاق فئات جديدة من الفئات الموجودة والواجهة هي تنفيذ فئات مجردة ووراثة متعددة.
ما هو الوراثة في جافا؟
يمكن للوراثة أن تحقق إعادة استخدام الكود. يساعد الميراث على إعادة استخدام سمات وطرق فئة موجودة. تسمى آلية اشتقاق فئة جديدة باستخدام الطبقة القديمة بالوراثة. تُعرف الفئة القديمة بفئة الوالدين أو الطبقة الفائقة. يطلق على الفئة المشتقة فئة فرعية أو فئة فرعية.
بناء جملة وراثة Java كما يلي.
class subclass_name يمتد superclass_name {
إعلان متغير
إعلان الطريقة ؛
}
يمكن شرح مفهوم الوراثة باستخدام المثال التالي. افترض أن هناك فئة تسمى A على النحو التالي.
فئة عامة A {
مجموع باطل عام () {
System.out.println (“Sum”) ؛
}
}
إذا أردنا إضافة طريقة جديدة دون تغيير الفئة الحالية ، فيمكننا القيام بذلك على النحو التالي.
فئة عامة B {
فرعي باطل عام () {
System.out.println (“Sub”) ؛
}
}
يمكن للمبرمج استخدام الوراثة لاستخدام الفئة A sum ().
الفئة العامة B تمتد إلى الفئة A {
فرعي باطل عام () {
System.out.println (“Sub”) ؛
}
}
في الوظيفة الرئيسية ، من الممكن إنشاء كائن B واستدعاء sub () ، والذي ينتمي إلى الفئة B و sum () ، التي تنتمي إلى الفئة A باستخدام الوراثة.
public static void main (String args) {
B obj=ب جديد () ؛
obj.sub () ؛
obj.sum () ؛
}
هناك أنواع مختلفة من الميراث. هم الميراث الفردي ، الميراث المتعدد ، الميراث متعدد المستويات ، الميراث الهرمي. في الوراثة الفردية ، توجد فئة أساسية واحدة وفئة مشتقة واحدة.في الوراثة متعددة المستويات ، هناك ثلاث فئات وهي الفئة الأساسية والفئة المتوسطة والفئة المشتقة. ترث الفئة المتوسطة من الفئة الأساسية ، وترث الفئة المشتقة من الطبقة المتوسطة. في الوراثة الهرمية ، هناك فئة أساسية واحدة والعديد من الفئات المشتقة. هناك نوع خاص يعرف باسم الوراثة الهجينة. إنه مزيج من نوعين أو أكثر من الميراث.
الشكل 01: الميراث
في الوراثة المتعددة هناك العديد من الأصناف الأساسية وفئة مشتقة واحدة. افترض أن الصنفين A و B هما الفئتان الأساسيتان. الفئة C هي الطبقة المشتقة. إذا كان لكل من الفئتين A و B نفس الطريقة واستدعى المبرمج هذه الطريقة من الفئة المشتقة ، فسوف يتسبب ذلك في مشكلة الغموض. وراثة فئتين يمكن أن يسبب خطأ وقت الترجمة.لذلك ، لا يتم دعم الوراثة المتعددة في Java. يمكن استخدام واجهة للتغلب على هذه المشكلة.
ما هي الواجهة في Java؟
التجريد هو عملية إخفاء تفاصيل التنفيذ وعرض الوظائف فقط للمستخدم. يمكن تحقيق التجريد باستخدام فئات مجردة أو واجهات. الطريقة المجردة هي طريقة بدون تنفيذ. الفئة التي تحتوي على طريقة مجردة واحدة على الأقل هي فئة مجردة. مثال على فئة مجردة على النحو التالي.
فئة مجردة أ {
مجموع باطل مجردة () ؛
}
افترض أن هناك فئتين مجردة مثل A و B. لتنفيذ الطرق المجردة من A و B ، يتم إنشاء فئة C جديدة. ثم يجب أن تمتد الفئة C كلاً من A و B. ، لكن الوراثة المتعددة غير مدعومة في Java. لذلك ، يجب استخدام الواجهات. يمكن استخدام الواجهات للإعلان عن الأساليب ، لكن لا يمكن تحديد الطرق. لا يمكن إنشاء كائن باستخدام الواجهات.يجب أن تنفذ الفئة C جميع الطرق في الواجهة A و B.
الواجهة أ {
مجموع باطل () ؛
}
واجهة ب {
فرعي باطل () ؛
}
فئة C تنفذ أ ، ب {
مجموع باطل عام () {
System.out.println (“الجمع”) ؛
}
فرعي باطل عام () {
System.out.println (“الطرح”) ؛
}
}
الآن ، في البرنامج الرئيسي ، من الممكن إنشاء كائن من C واستدعاء كلا الطريقتين.
public static void main (String args) {
C obj=C الجديدة () ؛
obj.sum () ؛
obj.sub () ؛
}
إذن ، يمكن استخدام الواجهات لتنفيذ الوراثة المتعددة.
استخدام آخر للواجهات هو أنه يوفر الأمان. راجع الكود أدناه
الواجهة أ {
مجموع باطل () ؛
}
الفئة ب تنفذ أ {
مجموع باطل عام () {
System.out.println (“الجمع”) ؛
}
فراغ عام مضاعفة () {
System.out.println (“الضرب”) ؛
}
}
عند إنشاء كائن B ، من الممكن استدعاء كلتا الطريقتين sum () وضررب (). إذا أراد المبرمج تقييد استخدام وظيفة الضرب () ، فمن الممكن على النحو التالي.
public static void main (String args) {
A obj=new B () ؛
obj.sum () ؛
}
A obj=new B () ؛ سيخلق كائنًا. إنه من النوع A ويتم تخصيص الذاكرة كـ B. ومن الممكن استدعاء sum () ولكن لا يمكن تنفيذ الضرب (). يتم هذا التقييد باستخدام الواجهات.
ما هي أوجه التشابه بين الوراثة والواجهة في جافا؟
- كلا المفهومين مرتبطان بالبرمجة الكائنية
- كلاهما يمثل علاقة IS-A.
ما هو الفرق بين الوراثة والواجهة في جافا؟
الوراثة مقابل الواجهة في Java |
|
الوراثة هو مفهوم OOP لاشتقاق فئات جديدة من الفئات الموجودة. | الواجهة هي آلية في OOP لتنفيذ التجريد والوراثة المتعددة. |
الاستخدام | |
الوراثة توفر إمكانية إعادة استخدام الكود. | واجهات توفر التجريد والوراثة المتعددة. |
ملخص - الوراثة مقابل الواجهة في Java
Java هي لغة برمجة متعددة النماذج تدعم البرمجة الموجهة للكائنات.ترتبط الوراثة والواجهات بالبرمجة الشيئية. الفرق بين الوراثة والواجهة هو أن الميراث هو اشتقاق فئات جديدة من الفئات والواجهات الموجودة هو تنفيذ فئات مجردة ووراثة متعددة.
قم بتنزيل نسخة PDF من الوراثة مقابل الواجهة في Java
يمكنك تنزيل نسخة PDF من هذه المقالة واستخدامها للأغراض غير المتصلة بالإنترنت وفقًا لملاحظة الاقتباس. يرجى تنزيل نسخة PDF هنا الفرق بين الوراثة والواجهة في Java