您现在的位置: 爱51代码网 >> 范文 >> 文章正文
问题标签用户C#多态中new 和(className)的区别

class A
{
public virtual void test1()
{
cnosole.writeline("test1 in A");
}
}
class B
{
public override void test1()
{
cnosole.writeline("test1 in B");
}
}

main()
{
B b=new B();
A a1=new B();
A a2=(A)b;
}

请问各位大神A a1=new B()、和A a2=(A)b,有什么区别

new是创建新实例,第二个是转换,这样a2和b是同一个东西,修改任何一个,都会影响到另一个

就是一样的了,你要是调同样的方法都是调用B类的那个test1 in B 因为他被overwrite了

a1,a2使用起来一样的。

如果要扣细了的话,那你先new 一个B, 然后又 A a2= (A)b;
中间不是多了一步吗?而且多了一个变量b。
其他没什么。

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    在lotus BS系统里怎样方便实现统
    undefined reference timer_crea
    C# 中InlineShapes.AddPictu
    pdf2flash将pdf转为swf时本地
    代码中如何返回IEnumerator
    C# 代码如何在Excel里面实现
    C#input输入框最后一位数字无
    VS2010如何让多个项目共享文
    oledb如何远程读写excel2003
    C#如何开发NPAPI
    asp.net实现打开ftp站点并下
    LINQ to entity 返回多个结果
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |