By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 42: شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart)
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

18
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Dart > الدرس 42: شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart)
Dart

الدرس 42: شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart)

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 3408 مشاهدات 6
شارك
شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart)
شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart)
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

تُعتبر التشعبية من المفاهيم الأساسية والهامة في عالم البرمجة، وفي هذا المقال، سنلقي نظرة على كيفية تطبيق مبدأ التشعبية في لغة دارت (Dart). ولكن قبل أن نقف عند هذا المفهوم، يجب علينا أولاً فهم مفهوم الوراثة في لغة دارت، حيث تمثل أساسًا لفهم كيفية بناء التشعبية واستخدامها بشكل فعال.

المحتويات
مفهوم التشعبية في دارت:التشعبية من خلال استبدال الدوال (Method Overriding):أمثلة على التشعبية في لغة دارت:مثال 1: التشعبية من خلال استبدال الدوال في دارتمثال 2: التشعبية من خلال استبدال الداول في دارتمثال 3: التشعبية من خلال استبدال الداول في دارتمثال 4: التشعبية من خلال استبدال الداول في دارت

مفهوم التشعبية في دارت:

التشعبية (Polymorphism) هي القدرة التي يمتلكها الكائن على اتخاذ أشكال متعددة. في العالم الحقيقي، لدينا القدرة على اتخاذ أشكال متعددة، فنحن يمكن أن نكون طالبًا، معلمًا، صديقًا وما إلى ذلك. بنفس الطريقة، في برمجة الكائنات OOP، التشعبية هي القدرة التي يتمتع بها الكائن على اتخاذ أشكال متعددة.


التشعبية من خلال استبدال الدوال (Method Overriding):

استبدال الأساليب أو الدوال (Method overriding) هي تقنية تتيح لك إنشاء دالة في الكلاس الابن تحمل نفس الاسم مثل الدالة في الكلاس الأب. وبذلك تقوم الدالة في الكلاس الابن بالاستبدال للدالة في الكلاس الأب.

الصيغة:

class ParentClass {
  void functionName() {
    // قم بتنفيذ الكود هنا
  }
}

class ChildClass extends ParentClass {
  @override
  void functionName() {
    // قم بتنفيذ الكود هنا
  }
}

أمثلة على التشعبية في لغة دارت:

مثال 1: التشعبية من خلال استبدال الدوال في دارت

في هذا المثال، لدينا كلاس يسمى Animal (حيوان) يحتوي على دالة تسمى eat() (تناول الطعام). يتم استبدال هذه الدالة في الكلاس الابن المسمى Dog (كلب).

الكود:

class Animal {
  void eat() {
    print("Animal is eating");
  }
}

class Dog extends Animal {
  @override
  void eat() {
    print("Dog is eating");
  }
}

void main() {
  Animal animal = Animal();
  animal.eat();

  Dog dog = Dog();
  dog.eat();
}

نتيجة الكود:

Animal is eating
Dog is eating

مثال 2: التشعبية من خلال استبدال الداول في دارت

في هذا المثال، لدينا كلاس يسمى Vehicle (مركبة) يحتوي على دالة تسمى run() (التشغيل). يتم استبدال هذه الدالة في الكلاس الابن المسمى Bus (حافلة).

الكود:

class Vehicle {
  void run() {
    print("Vehicle is running");
  }
}

class Bus extends Vehicle {
  @override
  void run() {
    print("Bus is running");
  }
}

void main() {
  Vehicle vehicle = Vehicle();
  vehicle.run();

  Bus bus = Bus();
  bus.run();
}

نتيجة الكود:

Vehicle is running
Bus is running

مثال 3: التشعبية من خلال استبدال الداول في دارت

في هذا المثال، لدينا كلاس يسمى Car (سيارة) يحتوي على دالة تسمى power() (الطاقة). يتم استبدال هذه الدالة في الكلاسين الابنين المسمين Honda (هوندا) و Tesla (تسلا).

الكود:

class Car {
  void power() {
    print("It runs on petrol.");
  }
}

class Honda extends Car {

}

class Tesla extends Car {
  @override
  void power() {
    print("It runs on electricity.");
  }
}

void main() {
  Honda honda = Honda();
  Tesla tesla = Tesla();

  honda.power();
  tesla.power();
}

نتيجة الكود:

It runs on petrol.
It runs on electricity.

مثال 4: التشعبية من خلال استبدال الداول في دارت

في هذا المثال، لدينا كلاس يسمى Employee (موظف) يحتوي على دالة تسمى salary() (الراتب). يتم استبدال هذه الدالة في الكلاسين الابنين المسمين Manager (مدير) و Developer (مطور).

الكود:

class Employee {
  void salary() {
    print("Employee salary is \$1000.");
  }
}

class Manager extends Employee {
  @override
  void salary() {
    print("Manager salary is \$2000.");
  }
}

class Developer extends Employee {
  @override
  void salary() {
    print("Developer salary is \$3000.");
  }
}

void main() {
  Manager manager = Manager();
  Developer developer = Developer();

  manager.salary();
  developer.salary();
}

نتيجة الكود:

Manager salary is $2000.
Developer salary is $3000.

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

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم وراثة الـ Constructor في لغة دارت(Dart) الدرس 41: شرح مفهوم وراثة الـ Constructor في لغة دارت (Dart)
المقال التالي شرح مفهوم الـ Static في لغة دارت (Static in Dart) الدرس 43: شرح مفهوم الـ Static في لغة دارت (Static in Dart)
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح العوازل في لغة دارت (Isolates in Dart)
Dart

شرح العوازل في لغة دارت (Isolates in Dart)

8
شرح الـ Stream في لغة دارت (Stream in Dart)
Dart

الدرس 57: شرح الـ Stream في لغة دارت (Stream in Dart)

8
شرح عبارات async & await في لغة دارت (Dart)
Dart

الدرس 56: شرح عبارات async & await في لغة دارت (Dart)

6
شرح مفهوم الـ Future في لغة دارت (Future In Dart)
Dart

الدرس 55: شرح مفهوم الـ Future في لغة دارت (Future In Dart)

6
شرح مفهوم الـ Asynchronous في لغة دارت (Dart)
Dart

الدرس 54: شرح مفهوم الـ Asynchronous في لغة دارت (Dart)

5
10 تمارين محلولة على Null Safety في لغة دارت Dart
Dart

الدرس 53: 10 تمارين محلولة على Null Safety في لغة دارت Dart

5
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟