我們知道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 }