全部博文(43)
分类:
2006-07-03 12:59:48
本节课将介绍中的继承,其目的如下:
1.基类的实现
2.类的继承
3.在派生类中初始化基类
4.如何调用基类成员
5.如何覆盖基类成员
继承是程序设计的主要特征之一,它可以让你重用代码,可以节省程序设计的时间。
1.清单8-1 继承: BaseClass.cs |
using System; public class ParentClass { public ParentClass() { Console.WriteLine("Parent Constructor."); } public void print() { Console.WriteLine("I'm a Parent Class."); } } public class ChildClass : ParentClass { public ChildClass() { Console.WriteLine("Child Constructor."); } public static void Main() { ChildClass child = new ChildClass(); child.print(); } } |
Parent Constructor. Child Constructor. I'm a Parent Class. |
说明 |
清单8-1演示了两个类的用法。上面的一个类名为ParentClass, main中用到的类名为ChildClass。要做的是创建一个使用父类ParentClass现有代码的子类ChildClass。
1.首先必须说明ParentClass是ChildClass的基类。
这是通过在ChildClass类中作出如下说明来完成的:"public class ChildClass : ParentClass"。在派生类标识符后面,用分号":" 来表明后面的标识符是基类。仅支持单一继承。因此,你只能指定一个基类。
2.ChildClass的功能几乎等同于ParentClass。
因此,也可以说ChildClass "就是" ParentClass。在ChildClass 的Main()方法中,调用print() 方法的结果,就验证这一点。该子类并没有自己的print()方法,它使用了ParentClass中的 print()方法。在输出结果中的第三行可以得到验证。
3.基类在派生类初始化之前自动进行初始化。
注意到清单8-1的输出结果。ParentClass 类的构造在ChildClass的构造之前执行。
2.清单 8-2. 派生类同基类进行通信: BaseTalk.cs |
using System; public class Parent { string parentString; public Parent() { Console.WriteLine("Parent Constructor."); } public Parent(string myString) { parentString = myString; Console.WriteLine(parentString); } public void print() { Console.WriteLine("I'm a Parent Class."); } } public class Child : Parent { public Child() : base("From Derived") { Console.WriteLine("Child Constructor."); } public void print() { base.print(); Console.WriteLine("I'm a Child Class."); } public static void Main() { Child child = new Child(); child.print(); ((Parent)child).print(); } } |
Output:
From Derived Child Constructor. I'm a Parent Class. I'm a Child Class. I'm a Parent Class. |
说明 |