Professional Documents
Culture Documents
Abstract
Abstract
Abstract
Classes and Methods
MOHAMMED AL- أوالً الفصيل المجرد abstract class
هو فصيل إفتراضي وهمي ال يمكن إنشاء غرض منه ،يستخدم بشكل أساسي ليدعم مبدأ الوراثة.
يتم التصريح عن فصيل بأنه مجرد لإلشارة إلى أن هذا الفصيل أساسي.
SULTAN
المفهوم العام من الفصيل المجرد هو تجميع البيانات المشتركة بين أكثر من فئة ففصيل مجرد بحيث ال
يمكن الوصول لها إال من فصيل مشتق ،أي ال نستطيع إنشاء غرض من هذا الفصيل والوصول من خالله
إلى هذه البيانات ،وهذا يساعد في إخفاء البيانات وحمايتها بصورة أكثر فاعلية.
للتصريح عن فصيل بأنه مجرد نكتب الكلمة المفتاحية abstractبالشكل التالي :
abstract class NameClass
}
{
بالكلمةabstract يجب أن يكون رأس الدالة الناسخة هو نفسه رأس الدالة المجردة مع تغيير الكلمة
. فقطoverride
يمكن إعادة تعريف الدوال المجردة داخل الفصيل المشتق من الفصيل المشتق من الفصيل المجرد (بمفهوم
عام إعادة تعريفها داخل األحفاد) ويمكن تجاوزها
: مثال حول الفصائل المجردة والدوال المجردة
using System;
namespace lab6
{
abstract class Shapes // Abstract class
{
protected double width;
protected double height;
public double Width
{
set { width = value; }
get { return width; }
}
public double Heiht
{
set { height = value; }
get { return height; }
}
public abstract double Area();
}
class Square : Shapes
{
public override double Area()
{
return Math.Pow(width, 2);
}
}
class Rectangular : Shapes
{
public override double Area()
{
return width * height;
}
}
class Triangle : Shapes
{
double Base;
public double BASE
{
set { Base = value; }
get { return Base; }
}
Console.ReadKey();
}
}
Sealed
Class and Methods
{
على سبيل المثال لو كان لدينا السلسلة التالية :
class First
}
{
{
{
إن الفصيل Thirdالذي في نهاية السلسلة يقوم بقطع الوراثة عن الفصائل التي بعده أي ال يمكن إضافة
فصيل جديد إلى السلسلة بالشكل التالي :
{
}
كما نالحظ يمكن لنا إعادة تعريف الدالة المجردة Func في الفصيل Secondوالفصيل Thirdلكن قمنا
بمنع إعادة تعريفها في أي فصيل مشتق من الفصيل Thirdوذلك بجعلها عقيمة في هذا الفصيل
لهذا ال يمكن للفصيل Fourthكتابة الدالة Funcبالكلمة المفتاحية override
مالحضة
تعريف الدالة Funcفي الفصيل Thirdبالكلمة sealedيمنع الفصيل Fourthمن إعادة تعريفها كدالة
ناسخة ،لكن هذا ال يمنع الفصيل Fourthمن وراثتها.
على سبيل المثال لو قمنا بإنشاء غرض من الفصيل Fourthفإن هذا الغرض يستطيع الوصول إلى الدالة
Funcالمعرفة في الفصيل Third
كالتالي
;)(Fourth ob=new Fourth
;)(ob.Func
نتيجة التعليمة السابقة هو تنفيذ الدالة Funcالتي في الفصيل Third
namespace SealedClassAndFuc
{
}
/*
class Fifth : Fourth
{
ال يمكن الوراثة من الفصيل Fourth
}
*/
class Program
{
static void Main(string[] args)
{
Third third = new Third();
third.Func();
Fourth thourth = new Fourth();
thourth.Func();
Console.WriteLine("Hello World!");
}
}
}