zoukankan      html  css  js  c++  java
  • 关于C#中虚方法重载的说明

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
    首先请大家看看下面的例子,
    using System;

    abstract public class contact
    {
          public virtual string prinf()
          {
              return ("这是虚方法");
          }
    }

    public class class1:contact
    {
           public string prinf()
           {
                  return ("这是新的方法");//但这会出现编译警告,因为已经从contact那继承了一个同名方法
           }
    }
    想要通过编译,只需将prinf的声明改为
    public override string prinf()

    public new string prinf()
    但是这两种声明方式是有区别的,
    请看下面的例子:
    using System;

    abstract public class contact
    {
          public virtual string prinf()
          {
              return ("这是虚方法");
          }
    }

    public class class1:contact
    {
           public override string prinf()
           {
                  return ("这是新的方法");   
            }
    }
    public class class2:contact
    {
           public new string prinf()
           {
                  return ("这是另一个新的方法");   
            }
    }
    public class text
    {
            public static void Main()
            {
                  contact [] contacts=new contact [2];
                  contacts[0]=new class1;
                  contacts[1]=new class2;
                  foreach(contact ct in contacts)
                  {
                        Console.WriteLine(ct.printf);
                   }
             }
    }

    最后我们看到的结果是

    这是新的方法
    这是虚方法


    而没有看见“这是另一个新的方法”,这是因为class2没有重载虚方法,而是重新定义了一个方法!
    这就是两者的区别!!!
  • 相关阅读:
    android中图型的阴影效果(shadow-effect-with-custom-shapes)
    git的经常使用命令
    C# vs Java
    Android-68-Tomcat各种启动错误的解决的方法,如:Exception in thread &quot;Thread-6&quot; NoClassDefFoundError,Document base E:
    Java高级程序猿技术积累
    Floodlight下发流表过程分析
    Maximal Rectangle [leetcode] 的三种思路
    C++实现顺序栈的基本功能
    ZOJ 1654 Place the Robots(最大匹配)
    [2-SAT] poj 3207 Ikki&#39;s Story IV
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912319.html
Copyright © 2011-2022 走看看