parsa lotfy
شنبه 08 اسفند 1394, 12:35 عصر
با سلام...
بنده دارم کتاب دیتل رو میخوونم ...:لبخند:
در جایی گفته شده برای ایجاد متدی که بشود آن متد را تعریف دوباره کرد ، باید اوون رو Virtual یا Abstract تعریف کرد ...
در یکی دو فصل بعد در مبحث چندریختی (Polymorphism ) کلاسی از نوع انتزاعی ( Abstract ) ایجاد کرده ، در آن کلاس متدی ایجاد کرده که قصد تعریف دوباره ی ان را در اینده دارد...
آن متد رو از نوع Abstract ایجاد کرده ، حالا سوال من اینه که چرا آن متد را Virtual تعریف نکرد ؟؟؟:متفکر:
و اصلا چه تفاوتی بین متد Virtual و Abstract وجوود دارد ؟؟؟:متفکر:
کد آن کلاس را هم در پایین میگذارم...
با تشکر:قلب::قلب::قلب:
// Employee abstract base class.
public abstract class Employee
{
// read-only property that gets employee's first name
public string FirstName { get; private set; }
// read-only property that gets employee's last name
public string LastName { get; private set; }
// read-only property that gets employee's social security number
public string SocialSecurityNumber { get; private set; }
// three-parameter constructor
public Employee( string first, string last, string ssn )
{
FirstName = first;
LastName = last;
SocialSecurityNumber = ssn;
} // end three-parameter Employee constructor
// return string representation of Employee object, using properties
public override string ToString()
{
return string.Format( "{0} {1}\nsocial security number: {2}",
FirstName, LastName, SocialSecurityNumber );
} // end method ToString
// abstract method overridden by derived classes
public abstract decimal Earnings(); // no implementation here
} // end abstract class Employee
بنده دارم کتاب دیتل رو میخوونم ...:لبخند:
در جایی گفته شده برای ایجاد متدی که بشود آن متد را تعریف دوباره کرد ، باید اوون رو Virtual یا Abstract تعریف کرد ...
در یکی دو فصل بعد در مبحث چندریختی (Polymorphism ) کلاسی از نوع انتزاعی ( Abstract ) ایجاد کرده ، در آن کلاس متدی ایجاد کرده که قصد تعریف دوباره ی ان را در اینده دارد...
آن متد رو از نوع Abstract ایجاد کرده ، حالا سوال من اینه که چرا آن متد را Virtual تعریف نکرد ؟؟؟:متفکر:
و اصلا چه تفاوتی بین متد Virtual و Abstract وجوود دارد ؟؟؟:متفکر:
کد آن کلاس را هم در پایین میگذارم...
با تشکر:قلب::قلب::قلب:
// Employee abstract base class.
public abstract class Employee
{
// read-only property that gets employee's first name
public string FirstName { get; private set; }
// read-only property that gets employee's last name
public string LastName { get; private set; }
// read-only property that gets employee's social security number
public string SocialSecurityNumber { get; private set; }
// three-parameter constructor
public Employee( string first, string last, string ssn )
{
FirstName = first;
LastName = last;
SocialSecurityNumber = ssn;
} // end three-parameter Employee constructor
// return string representation of Employee object, using properties
public override string ToString()
{
return string.Format( "{0} {1}\nsocial security number: {2}",
FirstName, LastName, SocialSecurityNumber );
} // end method ToString
// abstract method overridden by derived classes
public abstract decimal Earnings(); // no implementation here
} // end abstract class Employee