您的位置:首页 > 编程语言 > C#

C#之Virtual实例应用一

2016-01-12 10:57 591 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AbstractDemo
{

class Base
{
public virtual void  Func(){
Console.WriteLine("Base Func");
}
}

class SubChild : Base
{
public void Func()
{
Console.WriteLine("SubChild Func");
}
}

class Program
{
static void Main(string[] args)
{
/*
Base objBase:声明的类型是Base,实例化的类型是SubChild
*/
Base objBase = new  SubChild();
/*
调用Func()方法,objBase是Base类型的 检测Base中的Func()是virtual,在检查实例话类型SubChild,重新声明了Func函数
但是不重载,所以不调用此Func(),在检测SubChild的父类,也就是Base,就是声明类型 所以执行Base类型中的Func方法
得到的结果是:Base Func
*/
objBase.Func();
/*
objChild的声明类和实例类型都是SubChild,锁直接访问当前类中的Func方法
输出的结果是:SubChild Func
*/
SubChild objChild = new SubChild();
objChild.Func();

Console.ReadKey();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: