تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الحادي والعشرون - الوراثة Inheritance
#2
تعريف علاقة is-a :

كما ذكرنا في الدرس السابع عشر ، فإن العلاقة قد تكون is-a وقد تكون has-a ، سنحاول الآن شرح النوع الأول من العلاقات والذي يعني ان الكلاس المشتق هو من نوع الكلاس الرئيسي ، سنفترض سيارة BMW :

C#:

كود :
class BMW: Car
{
}
VB.net:


كود :
Class BMW
Inherits Car

End Class
هكذا نستطيع ان نقول ان الكلاس الابن BMW يحتوي على نفس خصائص الكلاس الأب Car ونفس دواله وطرقه ال public فقط ، ولكن لنفترض اننا في الكلاس الابن نحاول الوصول المباشر إلى الخاصية carName فلن نتمكن من ذلك ، هذا المثال يوضح هذه النقطة :

C#:


كود :
BMW ahmedcar=new BMW();
ahmedcar.carName="anyname";
VB.net:


كود :
Dim ahmedcar As New BMW()
ahmedcar.carName = "anyname"
حتى لو قمنا بتعريف بعض الدوال داخل الكلاس المشتق بحيث تستطيع الوصول إلى هذه الخاصية ، لنفترض اننا اعدنا صياغة الكلاس BMW ليكون بالشكل التالي :

C#:


كود :
class BMW: Car
{
public changeCarName(string value)
{
carName=value;
}
}
VB.net:


كود :
Class BMW
Inherits Car

Public Sub New(ByVal value As String)
carName = value
End Sub

End Class
للاسف لن يكون هذا صحيحاً تماماً ، حيث انك بالرجوع إلى درس معرفات الوصول ستكشتف ان معرف الوصول private لا يمكن الوصول له من الكلاس المشتق ، من اجل هذا نستخدم معرف الوصول protected حيث انه يشبه ال private في كونه لا يمكن الوصول المباشر له من خلال ال object ، لكنه في المقابل يمكن الوصول إليه من داخل الكلاس المشتق ، لو افترضنا مثال الكلاس Car بالشكل التالي :

C#:

كود :
class Car
{
protected string carName;
protected int carModel;
}
VB.net:

كود :
Class Car
Protected carName As String
Protected carModel As Integer
End Class
في هذه الحالة يمكننا تعريف دالة داخل الكلاس المشتق BMW تقوم بقراءة هذه المتغيرات ، لذا سوف يكون الكود التالي صحيحاً :

C#:

كود :
class BMW: Car
{
public changeCarName(string value)
{
carName=value;
}
}
VB.net:

كود :
Class BMW
Inherits Car

Public Sub New(ByVal value As String)
carName = value
End Sub

End Class
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس الحادي والعشرون - الوراثة Inheritance - بواسطة Raggi Tech - 14-10-12, 03:32 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم