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

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

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

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

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

في لغة دارت (Dart)، تمتلك وراثة الـ Constructor أهمية كبيرة في بنية وتصميم البرامج. إنها تمكننا من توريث الأكواد والخصائص الموجودة في الكلاس الأب إلى الكلاس الابن، مما يسهم في تقليل تكرار الأكواد وزيادة قابلية إعادة الاستخدام. في هذا المقال، سنستكشف مفهوم واستخدام وراثة الـ Constructor في لغة دارت وكيف يمكننا الاستفادة منها في تصميم تطبيقاتنا.

المحتويات
ما هي وراثة الـ Constructor في دارت؟مثال 1: وراثة الـ Constructor في دارتمثال 2: وراثة الـ Constructor بمعاملات في دارتمثال 3: وراثة الـ Constructor بدون معاملاتمثال 4: وراثة الـ Constructor بمعاملات مسماة في دارتمثال 5: استدعاء الـ Constructor المسمى في الكلاس الأب

ما هي وراثة الـ Constructor في دارت؟

وراثة الـ Constructor في دارت هي عملية توريث الـ Constructor الخاص بالكلاس الأب إلى الكلاس الابن. إنها طريقة لإعادة استخدام الأكواد الموجودة في الكلاس الأب.


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

في هذا المثال، لدينا كلاس يسمى “Laptop” يحتوي على الـ Constructor. وهناك كلاس آخر يسمى “MacBook” يرث من كلاس “Laptop”. الكلاس “MacBook” لديه الـ Constructor الخاص به.

class Laptop {
  //  الـ Constructor
  Laptop() {
    print("Laptop constructor");
  }
}

class MacBook extends Laptop {
  //  الـ Constructor
  MacBook() {
    print("MacBook constructor");
  }
}

void main() {
  var macbook = MacBook();
}

نتيجة الكود:

Laptop constructor
MacBook constructor

ملاحظة: يتم استدعاء الـ Constructor الخاص بالكلاس الأب أو الأساسي أولاً، ثم يتم استدعاء الـ Constructor الخاص بالكلاس الفرعي.


مثال 2: وراثة الـ Constructor بمعاملات في دارت

في هذا المثال، لدينا كلاس يسمى “Laptop” يحتوي على الـ Constructor مع وجود معاملات. وهناك كلاس آخر يسمى “MacBook” يرث من كلاس “Laptop”. الكلاس “MacBook” لديه الـ Constructor الخاص به مع وجود معاملات.

class Laptop {
  // الـ Constructor
  Laptop(String name, String color) {
    print("Laptop constructor");
    print("الاسم: $name");
    print("اللون: $color");
  }
}

class MacBook extends Laptop {
  // الـ Constructor
  MacBook(String name, String color) : super(name, color) {
    print("MacBook constructor");
  }
}

void main() {
  var macbook = MacBook("MacBook Pro", "Silver");
}

نتيجة الكود:

Laptop constructor
الاسم: MacBook Pro
اللون: Silver
MacBook constructor

مثال 3: وراثة الـ Constructor بدون معاملات

في هذا المثال، لدينا كلاس يسمى “Person” يحتوي على خصائص الاسم والعمر. وهناك كلاس آخر يسمى “Student” يرث من كلاس “Person”. الكلاس “Student” لديه خاصية إضافية تسمى “رقم اللفة”. دعنا نرى كيفية إنشاء الـ Constructor للكلاس “Student”.

class Person {
  String name;
  int age;

  // الـ Constructor
  Person(this.name, this.age);
}

class Student extends Person {
  int rollNumber;

  // الـ Constructor
 Student(String name, int age, this.rollNumber) : super(name, age);
}

void main() {
  var student = Student("John", 20, 1);
  print("اسم الطالب: ${student.name}");
  print("عمر الطالب: ${student.age}");
  print("رقم اللفة: ${student.rollNumber}");
}

نتيجة الكود:

اسم الطالب: John
عمر الطالب: 20
رقم اللفة: 1

مثال 4: وراثة الـ Constructor بمعاملات مسماة في دارت

في هذا المثال، لدينا كلاس يسمى “Laptop” يحتوي على الـ Constructor بمعاملات مسماة. وهناك كلاس آخر يسمى “MacBook” يرث من كلاس “Laptop”. الكلاس “MacBook” لديه الـ Constructor الخاص به بمعاملات مسماة أيضا.

class Laptop {
  // الـ Constructor
  Laptop({String? name, String? color}) {
    print("Laptop constructor");
    print("الاسم: $name");
    print("اللون: $color");
  }
}

class MacBook extends Laptop {
  // الـ Constructor
  MacBook({String? name, String? color}) : super(name: name, color: color) {
    print("MacBook constructor");
  }
}

void main() {
  var macbook = MacBook(name: "MacBook Pro", color: "Silver");
}

نتيجة الكود:

Laptop constructor
الاسم: MacBook Pro
اللون: Silver
MacBook constructor

مثال 5: استدعاء الـ Constructor المسمى في الكلاس الأب

في هذا المثال، لدينا كلاس يسمى “Laptop” يحتوي على الـ Constructor الافتراضي والـ Constructor المسمى. وهناك كلاس آخر يسمى “MacBook” يرث من كلاس “Laptop”. الكلاس “MacBook” لديه الـ Constructor الخاص به بمعاملات مسماة. يمكنك استدعاء الـ Constructor المسمى في الكلاس الأب باستخدام كلمة المفتاح “super”.

class Laptop {
  // الـ Constructor الافتراضي
  Laptop() {
    print("Laptop constructor");
  }

  // الـ Constructor المسمى
  Laptop.named() {
    print("Laptop named constructor");
  }
}

class MacBook extends Laptop {
  // الـ Constructor
  MacBook() : super.named() {
    print("MacBook constructor");
  }
}

void main() {
  var macbook = MacBook();
}

نتيجة الكود:

Laptop named constructor
MacBook constructor

وراثة الـ Constructor في لغة دارت تعد أداة قوية لتنظيم وبناء تطبيقاتنا بشكل أكثر فعالية وإعادة استخدام الأكواد بشكل مستدام. من خلال توريث الخصائص والدوال من الكلاس الأب إلى الكلاس الابن، يمكننا أيضًاتحسين هيكلة التطبيق وتقليل التكرار والأخطاء. استخدم وراثة الـ Constructor بحكمة في تصميمك واستفد من فوائدها لتطوير تطبيقات دارت القوية والقابلة للصيانة.

 

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم الوراثة في لغة دارت (Inheritance in Dart) الدرس 40: شرح مفهوم الوراثة في لغة دارت (Inheritance in Dart)
المقال التالي شرح مفهوم التشعبية في لغة دارت (Polymorphism in Dart) الدرس 42: شرح مفهوم التشعبية في لغة دارت (Polymorphism 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

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