zoukankan      html  css  js  c++  java
  • 第六章 初识继承和多态

    一.继承

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

  • 相关阅读:
    Httpclient5工具类
    temp
    《On Java 8》笔记 2
    《On Java 8》笔记
    《Effective Java》笔记 4~5
    Oracle数据库对比MySQL
    《Effective Java》笔记
    [BUAA2021软工]结对第一阶段博客作业小结
    Spring Boot入门
    MyBatis入门
  • 原文地址:https://www.cnblogs.com/1998A/p/8813154.html
Copyright © 2011-2022 走看看