第六章 初识继承和多态

一.继承

  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();
        }
    }

原文地址:https://www.cnblogs.com/1998A/p/8813154.html