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所示。

10.2 访问继承的成员 - 图1