我们知道C#中通过继承可以使一个具有公共数据和方法的基类被广泛应用从而减少代码量,这样派生类会具有基类中所有成员(除构造器等),我们理所当然可以通过派生类实例来使用基类的成员。那么当基类成员被protected修饰时,我们应该怎么在派生类中使用基类成员呢,下面将介绍使用方法。
首先我们贴一段错误的使用代码:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.ReadLine(); 6 7 } 8 } 9 public class Person 10 { 11 protected string Name 12 { 13 set { name = value; } 14 get { return name; } 15 } 16 private string name; 17 } 18 public class Student:Person 19 { 20 public void Method(Person person) 21 { 22 person.Name="rurui"; 23 } 24 }
在派生类中我们不能引用基类的实例来作用基类成员,而我们应该使用派生类的实例来使用,如下代码:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.ReadLine(); 6 } 7 8 public class Person 9 { 10 protected string Name 11 { 12 set { name = value; } 13 get { return name; } 14 } 15 private string name; 16 } 17 public class Student : Person 18 { 19 public void Method(Person person) 20 { 21 Student stu = person as Student; 22 stu.Name = "rurui"; 23 } 24 25 } 26 }