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(); } } }
相关文章推荐
- 解析C#中[],List,Array,ArrayList的区别及应用
- C#读写文件总结
- 【转】string.Format对C#字符串格式化
- c# 小数点格式化
- C#多线程之旅(1)——介绍和基本概念
- C#多线程之旅(3)——线程池
- 策略模式(StragetyPattern)学习记录
- C#6.0新特性
- 【C#】 get 与 set 方法
- c#控件说明
- c# 调用 WINDOW API DLL
- C#读取ini文件的方法
- C# 插入或删除word分页符
- C#中DllImport用法汇总
- C#反射Assembly 详细说明
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
- 一套通过c# sap-rfc 完整处理内表输入输出的程序
- C#数据流
- C# Devexpress 中控件的一些使用技巧
- C#基础回顾(一)—C#访问修饰符