程序清单:
using System
class Vehicle //定义汽车类
{
int wheels;//公有成员:轮子个数
protected float weight; //保护成员:重量
public Vehicle(){;}
public Vehicle(int w,float g){
wheels = w;
weight = g;
}
public void Speak(){
Console.WriteLine("the w vehicle is speaking!");
}
};
class Car:Vehicle //定义轿车类:从汽车类中继承
{
int passenger; //私有成员:乘客数
public Car(int w,float g,int p):base(w,g)
{
wheels = w;
weight = g;
passengers = p;
}
}
Vehicle作为基类,体现了“汽车”这个实体具有的公共性质:汽车都有轮子和重量。
Car继承了Vehicle的这些性质,并且添加了自身的特性;可以搭载乘客。
C#中的继承负荷下列规则:
1. 继承是可传递的。如果C从B派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。
2.派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员定义。
3.构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们。
4.派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。
5.类可以定义虚方法,虚属性以及虚索引指示器,它的派生类能够重载这些成员,从而实现类能够重载这些成员,从而实现类可以展示多态性。
|