一.继承
1.继承概念:在C#中,如果一个类后面通过冒号又跟了另外一个类,那么我们就称冒号前面的类
为子类,冒号后面的类为父类。这种书写类的方式放映出来的关系就称为类的继承关系。
子类:派生类
父类:基类或者超类
2.继承是面向对象编程中一个非常重要的特征
3. base关键字表示父类,可以用于访问父类的成员
4. public:在任何位置都可以访问,甚至是跨程序集都可以访问。
private:只能当前类的花括号中访问。
protected:只能在当前类,当前类的子类,子类的子类(孙子类)中可以访问。
5.子类可以继承父类哪些成员?
非私有的都可以(public .protected)
6.继承的传递性
如果一个类B继承自类A,而类C又继承类B,那么类C也可以访问到类A中非私有成员
7.在C#中,一个类只能有一个父类,C#和Java都不支持多继承。要想使用多继承,那么请您使用接口
二.上机练习
1.汽车类(Truck)有VehicleRun()方法,输出" 汽车在行驶"
//汽车
public class Vehicle
{
//型号
private string type;
public string Type
{
get { return type; }
set { type = value; }
}
//产地
private string place;
public string Place
{
get { return place; }
set { place = value; }
}
//构造函数
public Truck() { }
public Truck(string type,string place)
{
this.Place = place;
this.Type = type;
}
public void VehicleRun()
{
Console.WriteLine("汽车在行驶");
}
}
2.卡车类(Truk)有TruckRun()方法,输出"型号XXX,产地XXX的卡车在行驶"
//卡车
public class Truck:Truck
{
//构造函数
public Vehicle() { }
public Vehicle(string type,string place):base(type,place)
{
}
public void TruckRun()
{
Console.WriteLine("型号为{0},产地为{1}的卡车正在行驶",this.Type,this.Place);
}
}
3.实例化一个卡车调用汽车和卡车的方法
class Program
{
static void Main(string[] args)
{
//卡车对象
Truck vh = new Truck("奥迪","德国");
vh.VehicleRun();
vh.TruckRun();
Console.ReadLine();
}
}