10.2 访问继承的成员
派生类内部可以访问基类的所有非私有成员(私有成员只有类自身才可访问),就像这些成员是派生类自身的一样。下面以“人-学生”为例进行说明。当然,这里“人”为基类;“学生”派生自“人”,是派生类。在“人”类型中,我们定义了所有人所共有的一些数据成员,如姓名、年龄,而“学生”类型定义了自己独有的学校数据,在派生类“学生”中可以自由访问基类的姓名、年龄等成员,如代码清单10-3所示。
代码清单10-3 从派生类访问基类的非私有成员
1 using System;
2
3 namespace ProgrammingCSharp4
4{
5 class Person
6{
7 public string Name;
8 public int Age;
9 public Person(string name,int age)
10{
11 Name=name;
12 Age=age;
13 Console.WriteLine("{0},{1}",Name,Age);
14}
15}
16
17 class Student:Person
18{
19 public string School;
20 public Student(string name,int age,string school)
21:base(name,age)
22{
23 School=school;
24 Console.WriteLine("{0},{1},{2}",Name,Age,School);
25}
26}
27
28 class ClassExample
29{
30 public static void Main()
31{
32 Student student=new Student(“大雄”,12,“一中”);
33 Console.WriteLine(student.Name);
34 Console.WriteLine(student.Age);
35 Console.WriteLine(student.School);
36}
37}
38}
程序运行结果如下:
大雄,12
大雄,12,一中
大雄
12
一中
对代码清单10-14的说明如表10-2所示。