关于Virtual
来源:互联网 发布:anaconda linux 下载 编辑:程序博客网 时间:2024/06/05 17:11
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication13
{
class Program
{
class Number
{
public static int i = 123;
public virtual void ShowInfo()
{
Console.WriteLine("base class-----");
}
public virtual void ShowNumber()
{
Console.WriteLine(i.ToString());
}
}
class IntNumber:Number
{
new public static int i=456;//对静态字段也声明为new?
public new virtual void ShowInfo()
{
Console.WriteLine("Derived class----");
}
public override void ShowNumber()
{
Console.WriteLine("base number is {0}",Number.i.ToString());//调用的是父类的静态字段
Console.WriteLine("new number is {0}",i.ToString()); //调用的是当前的静态字段
}
}
static void Main(string[] args)
{
//Number num = new Number();
//num.ShowNumber();//调用父类的静态字段 123
//IntNumber intnum = new IntNumber();
//intnum.ShowNumber();//调用子类对父类的重载方法,会显示子类的方法 123 456
//intnum.ShowInfo();
Number number = new IntNumber();
number.ShowInfo();//
number.ShowNumber();
}
}
}
什么是隐藏,我老是不懂,现在懂了。
在子类new一个对象的时候,如本例的intNumber ,它里面的
public new virtual void ShowInfo()
{
Console.WriteLine("Derived class----");
}
这个方法,如图所示,会在子类中,新生成一个方法对象 ,而原来的
public new virtual void ShowInfo()
{
Console.WriteLine("base class----");
}
会被隐藏,这里的隐藏,不是覆盖,子类并没有对父类的ShowInfo方法,进行修改,
只不过是,子类对外显示的时候,貌似只看到子类的showinfo()方法,
当我们的引用类型是子类的时候,方法指针指向 子类中的方法
当引用类型是父类的时候,方法指针指向父类中的方法,所以就会显示父类的方法了。
对于,覆盖和隐藏,最关键的是,把握好,在内存的分配情况
- 关于Virtual
- BW:关于Virtual Provider
- 关于virtual虚函数
- 关于C#:abstract,virtual
- 关于Virtual Memory
- 关于Virtual PC
- 关于虚拟Virtual DOM
- C++ 关于virtual
- 关于virtual interface
- 关于Virtual继承及Virtual Table
- 重载和覆盖--关于virtual
- 关于c++的virtual关键字
- 关于virtual judge的问题
- 关于virtual与非virtual析构函数的区别
- 关于abstract和virtual用法区别
- 关于 Microsoft Virtual WiFi miniport Adapter
- 关于子类中virtual可有可无的讨论
- 关于继承时virtual的作用
- 白话VPN——接布什
- 12306在线买火车票为什么需要安装根证书
- 字符串模式匹配的BM算法
- 27 - Next Permutation
- 数据结构与算法分析笔记:第一章:递归
- 关于Virtual
- 企业如何确定自己的业务是否适合使用Hadoop?
- 机房收费系统合作的一些感受
- 山西煤老板买煤--简单新思路
- 浏览器插件之ActiveX开发(四)----web页面调用ActiveX
- 您需要注意的c 的11个要点[转贴] 基础知识
- 算法导论——插入排序
- 并查集之POJ1308
- 浏览器插件之ActiveX开发(五)----关于ActiveX的数字签名