码迷,mamicode.com
首页 > 其他好文 > 详细

C# this和base

时间:2014-05-12 11:46:04      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:class   c   ext   int   get   string   

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Audi audi = new Audi("linQ",60);
            audi[1] = "A6";
            audi[2] = "A8";
            Console.WriteLine(audi[1]);
            audi.Run();
            audi.ShowResult();
            Console.ReadLine();
        }
    }
    public class Action
    {
        public static void ToRun(Vehicle vehicle)
        {
            Console.WriteLine("{0} is running.", vehicle.ToString());
        }
    }
    public class Vehicle
    {
        private string name;
        private int speed;
        private string[] array = new string[10];

        public Vehicle()
        {
        }
        //限定被相似的名称隐藏的成员
        public Vehicle(string name, int speed)
        {
            this.name = name;
            this.speed = speed;
        }
        public virtual void ShowResult()
        {
            Console.WriteLine("The top speed of {0} is {1}.", name, speed);
        }
        public void Run()
        {
            //传递当前实例参数
            Action.ToRun(this);
        }
        //声明索引器,必须为this,这样就可以像数组一样来索引对象
        public string this[int param]
        {
            get { return array[param]; }
            set { array[param] = value; }
        }
    }
    public class Car : Vehicle
    {
        //派生类和基类通信,以base实现,基类首先被调用
        public Car()
            : base("Car", 200)
        { }

        //指定创建派生类实例时应调用的基类构造函数
        public Car(string name, int speed)
            : this()
        { }

        public override void ShowResult()
        {
            //调用基类上已被其他方法重写的方法
            base.ShowResult();
            Console.WriteLine("It‘s a car‘s result.");
        }
    }
    public class Audi : Car
    {
        public Audi()
            : base("Audi", 300)
        { }

        public Audi(string name, int speed)
            : this()
        {
        }
        public override void ShowResult()
        {
            //由三层继承可以看出,base只能继承其直接基类成员
            base.ShowResult();
            base.Run();
            Console.WriteLine("It‘s audi‘s result.");
        }

    }


}

C# this和base,布布扣,bubuko.com

C# this和base

标签:class   c   ext   int   get   string   

原文地址:http://www.cnblogs.com/woshilulin/p/3720365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!