ما الفرق بين virtual and static method ؟
#1
Question 
السلام عليكم ورحمة الله تعالى وبركاته

نعلم أن classe méthodes تكون إما virtual او static لكن لم افهم الفرق بينهم ومتى أستعمل كل وحدة.

قمت بإنشاء class على النحو التالي : 

كود :
unit uClassA; interface type   TClassA = class(TObject)     public       class function Add(pA,pB: integer): integer;   end; implementation { TClassA } class function TClassA.Add(pA, pB: integer): integer; begin   Result:= (pA + pB); end; end.

يوجد 3 حالات لتعريف method :

1- بدون ايي كلمة مفتاحية (لا static لا virtual)
كود :
class function Add(pA,pB: integer): integer;
2- [size=small]بإستخدام [/size]static
كود :
class function Add(pA,pB: integer): integer; static;
3- بإستخدام virtual 
كود :
class function Add(pA,pB: integer): integer; virtual;

الكل يشتغلون بدون مشاكل عبر هذا الكود (لا يوجد فرق في النتيجة)
كود :
ShowMessage(TClassA.Add(10,20).toString);

اين هو الفرق إذا ؟
الرد


الردود في هذا الموضوع
ما الفرق بين virtual and static method ؟ - بواسطة MasteranyOne - 11-08-2020, 11:32 AM

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


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