base this 关键字

C# 继承与多态示例
本文介绍了一个使用 C# 编写的简单示例程序,通过 Vehicle 类及其派生类 Car 和 Audi 实现了继承和多态的概念。程序展示了如何在不同类中覆盖方法,并演示了数组特性的使用。
ContractedBlock.gifExpandedBlockStart.gifCode
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Collections.Specialized;
using System.Threading;

using System.Reflection;
using System.Data;

namespace TestArray
{
    
class Program
    {
        
static void Main(string[] args)
        {
            Audi audi 
= new Audi();
            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);
        }


        
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.");
        }
    }  


}






转载于:https://www.cnblogs.com/duwamish/archive/2009/07/20/1527157.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值