مقدمة
في عالم البرمجة الشيئية، يعد البوليمورفية من المفاهيم الأساسية التي تسهم في جعل البرمجة أكثر مرونة وتوسيعاً. يأتي مصطلح "البوليمورفية" من الكلمات اليونانية "poly" (كثير) و"morphos" (أشكال)، ويعني "كثير من الأشكال". في جافا، تمكن البوليمورفية الكائنات من التصرف بطرق مختلفة وفقًا للسياق الذي يتم فيه استخدامها.
السمات الرئيسية
-
الوراثة:
- الفئة المشتقة ترث السمات والأساليب من الفئة الأساسية ويمكنها إضافة أعضاء جدد أو إعادة تعريف القائمة.
-
الاستبدال:
- يمكن استخدام كائن من الفئة المشتقة في المواقع التي يتوقع فيها كائن من الفئة الأساسية.
-
الطرق البوليمورفية:
- طرق يتم تعريفها في الفئة الأساسية ويمكن إعادة تعريفها في الفئات المشتقة. تحدد التنفيذ الصحيح للطريقة في وقت التشغيل بناءً على نوع الكائن الحقيقي الذي يتم الإشارة إليه.
فوائد البوليمورفية في جافا
-
كتابة كود أكثر عمومية: يمكن تحديد سلوكيات مشتركة في الفئة الأساسية والاستفادة من التنفيذات الخاصة في الفئات المشتقة.
-
سهولة التمدد: يمكن إضافة فئات مشتقة جديدة دون تعديل الكود الحالي الذي يتعامل مع الفئة الأساسية.
أمثلة عملية
مثال 1: الحيوانات
class Animal {
public void hacerSonido() {
System.out.println("الحيوان يصدر صوتًا.");
}
}
class Perro extends Animal {
public void hacerSonido() {
System.out.println("الكلب ينبح.");
}
}
class Gato extends Animal {
public void hacerSonido() {
System.out.println("القط يعوي.");
}
}
public class Polimorfismo {
public static void main(String[] args) {
Animal animal1 = new Perro();
Animal animal2 = new Gato();
animal1.hacerSonido();
animal2.hacerSonido();
}
}
مثال 2: حساب مساحة الأشكال
class Figura {
public double calcularArea() {
return 0.0;
}
}
class Cuadrado extends Figura {
private double lado;
public Cuadrado(double lado) {
this.lado = lado;
}
@Override
public double calcularArea() {
return lado * lado;
}
}
class Circulo extends Figura {
private double radio;
public Circulo(double radio) {
this.radio = radio;
}
@Override
public double calcularArea() {
return Math.PI * radio * radio;
}
}
public class PolimorfismoArea {
public static void main(String[] args) {
Figura cuadrado = new Cuadrado(5.0);
Figura circulo = new Circulo(3.0);
System.out.println("مساحة الكرينسي: " + cuadrado.calcularArea());
System.out.println("مساحة الدائرة: " + circulo.calcularArea());
}
}
الختام
باختصار، البوليمورفية تضيف لغة جافا قدرة استثنائية على التكيف مع سياقات متنوعة، مما يجعل التصميم أكثر مرونة وقابلية للتوسع. يمكنكم مشاهدة تنفيذ الأمثلة في الرابط التالي: .
لمزيد من التفاصيل والتحليلات حول مفهوم البوليمورفية في جافا، يُفضل قراءة المقال الشامل المتوفر في .