متدی که به صورت Protected در یک کلاس تعریف شود در کلاس هایی که از آن ارث بری می کنند در دسترس خواهند بود اما در نمونه ساخته شده از کلاس ارث بری شده قابل استفاده نخواهد بود .
در این جا کلاس Human را تعریف می کنیم که شامل یک متد Protected به نام GetFullName می باشد:
public class Human
{
private string _FirstName;
private string _LastName;
private string _NationalCode;
public string FirstName
{
get { return _FirstName; }
set { _FirstName = value; }
}
public string LastName
{
get { return _LastName; }
set { _LastName = value; }
}
public string NationalCode
{
get { return _NationalCode; }
set { _NationalCode = value; }
}
protected string GetFullName() => $"{FirstName}{LastName}";
}
و حال یک کلاس Student که از کلاس Human ارث بری می کند تعریف می کنیم :
public class Student:Human
{
public string Getfullname
{
get { return GetFullName(); } ===>فراخوانی متد
}
}
و حال یک Object از کلاس Student می سازیم :
Student stu = new Student();
stu.FirstName="Amir";
stu.LastName="Alavi";
string name = Stu.Fullname();
stu.GetfullName(); X ===>نمونه ی ساخته شده از کلاس به این متد دسترسی ندارد
چون متد GetFullName به صورت protected در کلاس Human تعریف شده است در نمونه ی ساخته شده از کلاس Student قابل شناسایی نیست .
برچسب:
نویسنده: پویا فراهانی