By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 40: شرح مفهوم الوراثة في لغة دارت (Inheritance 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 لتسريع تطوير التطبيقات

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

الدرس 40: شرح مفهوم الوراثة في لغة دارت (Inheritance in Dart)

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

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

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

 

المحتويات
الصيغة العامة للوراثة في دارتمعلومات هامة في الوراثة:فوائد الوراثة في لغة دارت:أمثلة على الوراثة في لغة دارت:مثال 1: الوراثة في لغة دارتمثال 2: الوراثة في لغة دارتأنواع الوراثة في لغة دارت:الوراثة الفردية (Single Inheritance):الوراثة متعددة المستويات (Multilevel Inheritance):الوراثة الهرمية (Hierarchical Inheritance):الوراثة المتعددة (Multiple Inheritance):

الوراثة في لغة دارت هي ميزة تسمح لك بإنشاء صلة تواصل بين كلاسين، حيث يمكن للكلاس الابن أن يرث الخصائص والأساليب من الكلاس الأساسية الأب. تُستخدم كلمة “extends” لتوريث الكلاس من الكلاس الأب. في هذا المقال سنتناول مفهوم الوراثة في لغة دارت وكيفية تعريف كلاس يستخدم الخصائص والأساليب الموجودة في كلاس أخر.


الصيغة العامة للوراثة في دارت

في لغة دارت، يتم تعريف الكلاس عن طريق استخدام الكلمة المفتاحية “class”. ولتوريث كلاس من كلاس أخر يتم استخدام الكلمة المفتاحية “extends”.

class ParentClass {
  // كود الكلاس الأب
}

class ChildClass extends ParentClass {
  // كود الكلاس الابن
}

في هذه الصيغة، تكون ParentClass هو الكلاس الأب و ChildClass هو الكلاس الابن. الكلاس الابن يرث الخصائص والأساليب من الكلاس الأب.


معلومات هامة في الوراثة:

  • الكلاس الأب: هو الكلاس الذي يرث منه الكلاس الأبن خصائص وأساليب. ويعرف أيضًا بالكلاس الرئيسي.
  • الكلاس الأبن: هو الكلاس الذي يرث خصائص وأساليب من كلاس أخر. ويعرف أيضًا الكلاس الفرعي.
  • لغة دارت تدعم الوراثة الفردية (Single Inheritance)، مما يعني أنه يمكن للكلاس أن يرث من كلاس واحد فقط. ولا تدعم الوراثة المتعددة (Multiple Inheritance)، وهذا يعني أن الكلاس لا يمكنه أن يرث من عدة كلاسات في نفس الوقت.

 


فوائد الوراثة في لغة دارت:

  • تعزز إعادة استخدام الكود وتقلل من تكراره.
  • تساعد في تصميم البرنامج بشكل أفضل.
  • تجعل الكود أكثر بساطة ونظافة وتوفر الوقت والمال في عمليات الصيانة.
  • تسهل إنشاء مكتبات الكلاسات.
  • يمكن استخدامها لفرض واجهة قياسية لجميع الكلاسات الفرعية.


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

مثال 1: الوراثة في لغة دارت

في هذا المثال، سنقوم بإنشاء كلاس Person ثم إنشاء كلاس Student التي يرث الخصائص والأساليب من كلاس Person.

class Person {
  // الخصائص
  String? name;
  int? age;

  // الأسلوب أو الدالة
  void display() {
    print("Name: $name");
    print("Age: $age");
  }
}

class Student extends Person {
  // الخصائص
  String? schoolName;
  String? schoolAddress;

  // الأسلوب أو الدالة
  void displaySchoolInfo() {
    print("School Name: $schoolName");
    print("School Address: $schoolAddress");
  }
}

void main() {
  // إنشاء كائن من كلاس Student
  var student = Student();
  student.name = "John";
  student.age = 20;
  student.schoolName = "ABC School";
  student.schoolAddress = "New York";
  student.display();
  student.displaySchoolInfo();
}

نتيجة الكود:

Name: John
Age: 20
School Name: ABC School
School Address: New York

في هذا المثال، قمنا بتعريف كلاس Person التي تحتوي على خصائص “name” و “age” ودالة “display”. ثم قمنا بتعريف كلاس Student الذي يرث من كلاس Person ويحتوي على خصائص “schoolName” و “schoolAddress” ودالة “displaySchoolInfo”. في الدالة main، قمنا بإنشاء كائن من كلاس Student وقمنا بتعيين القيم للخصائص ثم قمنا بعرض معلومات الطالب ومعلومات المدرسة.

مثال 2: الوراثة في لغة دارت

في هذا المثال، لدينا الكلاس الأساسي Car والكلاس الفرعي Toyota. يرث كلاس Toyota الخصائص والأساليب من كلاس Car.

class Car {
  String? color;
  int? year;

  void start() {
    print("Car started");
  }
}

class Toyota extends Car {
  String? model;
  int? prize;

  void showDetails() {
    print("Model: $model");
    print("Prize: $prize");
  }
}

void main() {
  var toyota = Toyota();
  toyota.color = "Red";
  toyota.year = 2020;
  toyota.model = "Camry";
  toyota.prize = 20000;
  toyota.start();
  toyota.showDetails();
}

نتيجة الكود:

Car started
Model: Camry
Prize: 20000

في هذا المثال، قمنا بتعريف كلاس Car الذي يحتوي على خصائص “color” و “year” ودالة “start”. ثم قمنا بتعريف كلاس Toyota الذي يرث من كلاس Car ويحتوي على خصائص “model” و “prize” ودالة “showDetails”. في الدالة main، قمنا بإنشاء كائن من كلاس Toyota وتعيين القيم للخصائص ثم قمنا ببدء التشغيل للسيارة وعرض تفاصيل السيارة.


أنواع الوراثة في لغة دارت:

الوراثة الفردية (Single Inheritance):

في هذا النوع من الوراثة، يمكن للكلاس أن يرث من كلاس واحد فقط. في لغة دارت.

مثال:

class Animal {
  void eat() {
    print("Eating...");
  }
}

class Cat extends Animal {
  void meow() {
    print("Meow!");
  }
}

void main() {
  var cat = Cat();
  cat.eat(); // الدالة موروثة من الكلاس الأساسي
  cat.meow(); // الدالة موجودة في الكلاس الابن
}

في المثال أعلاه، لدينا كلاس أساسي يسمى “Animal” يحتوي على دالة “eat”، ونورث هذا الكلاس الي كلاس جديد يسمى “Cat”، والذي يضيف دالة إضافية تسمى “meow”. بفضل الوراثة الفردية، يمكن لكائن من النوع “Cat” استدعاء كلا الدالتين “eat” و “meow”.

الوراثة متعددة المستويات (Multilevel Inheritance):

في هذا النوع من الوراثة، يمكن للكلاس أن يرث من كلاس أخر وهذا الكلاس بدوره يرث من كلاس أخر.

مثال:

class GrandParentClass {
  // خصائص وأساليب كلاس الجد الأعلى
}

class ParentClass extends GrandParentClass {
  // خصائص وأساليب كلاس الأب
}

class ChildClass extends ParentClass {
  // خصائص وأساليب الكلاس الفرعي
}

الوراثة الهرمية (Hierarchical Inheritance):

في هذا النوع من الوراثة، يمكن للكلاس أن يرث من كلاس واحد، ولكن يمكن أن يتم تمديد الكلاس الواحد من قبل عدة كلاسات فرعية. بمعنى آخر، هناك كلاس واحد يعمل ككلاس أساسي لعدة كلاسات فرعية.

مثال:

class Animal {
  void eat() {
    print("Eating...");
  }
}

class Cat extends Animal {
  void meow() {
    print("Meow!");
  }
}

class Dog extends Animal {
  void bark() {
    print("Bark!");
  }
}

void main() {
  var cat = Cat();
  cat.eat();
  cat.meow();

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

في هذا المثال، لدينا كلاس “Animal” يحتوي على دالة “eat”، ونورث هذا الكلاس الى 2 كلاس فرعيين هما “Cat” و “Dog”. كلا الكلاسين الفرعيين يرثان الدالة “eat” من الكلاس الأساسي “Animal”، ويحتوي كل منهما على دالة خاصة به.

الوراثة المتعددة (Multiple Inheritance):

في هذا النوع من الوراثة، يمكن للكلاس أن يرث من عدة كلاسات في نفس الوقت. ومع ذلك، يجب أن نلاحظ أن لغة دارت لا تدعم الوراثة المتعددة.


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

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم الـ Getter و Setter في لغة دارت Dart الدرس 39: شرح مفهوم الـ Getter و Setter في لغة دارت Dart
المقال التالي شرح مفهوم وراثة الـ Constructor في لغة دارت(Dart) الدرس 41: شرح مفهوم وراثة الـ Constructor في لغة دارت (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

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