zoukankan      html  css  js  c++  java
  • C# new and override

    /// 测试点
    /// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)

    /// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)

    public  class baseClass
        
    {

            
    public baseClass()
            
    {
                MethodOfOverride();
                MethodOfNew();
     
            }


            
    public virtual void MethodOfOverride()
            
    {
                Console.WriteLine(
    "baseClass:MethodOfOverride");
            }

            
    public void MethodOfNew()
            
    {
                Console.WriteLine(
    "baseClass:MethodOfNew");
            }


            

        }


        
    public class derivedClass : baseClass
        
    {
            
    public int value;
            
    public derivedClass()
            
    {
                value 
    = 2;
            }


            
    public override void MethodOfOverride()
            
    {

                Console.WriteLine(
    "derivedClass:MethodOfOverride value=" + value.ToString());
            }


            
    public new void MethodOfNew()
            
    {
                Console.WriteLine(
    "derivedClass:MethodOfNew value=" + value.ToString());
            }


        }



        
    /// <summary>
        
    /// 测试点
        
    /// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
        
    /// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)
        
    /// </summary>

        class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Console.WriteLine(
    "*********baseClass tempClassA = new baseClass()*********");
                Console.WriteLine(
    "----------------初始化输出----------------------");
                baseClass tempClassA 
    = new baseClass();
                Console.WriteLine(
    "----------------下面方法输出------------------------");
                tempClassA.MethodOfOverride();
                tempClassA.MethodOfNew();

                Console.WriteLine(
    "*********derivedClass tempClassB = new derivedClass()*********");
                Console.WriteLine(
    "----------------下面初始化输出----------------------");
                derivedClass tempClassB 
    = new derivedClass();
                Console.WriteLine(
    "----------------下面方法输出------------------------");
                tempClassB.MethodOfOverride();
                tempClassB.MethodOfNew();

                Console.WriteLine(
    "*********baseClass tempClassC = new derivedClass()*********");
                Console.WriteLine(
    "----------------下面初始化输出----------------------");
                baseClass tempClassC 
    = new derivedClass();
                Console.WriteLine(
    "----------------下面方法输出------------------------");
                tempClassC.MethodOfOverride();
                tempClassC.MethodOfNew();

                Console.Read();

                
    //
                /* 输出结果
                 
                 *********baseClass tempClassA = new baseClass()*********
                 ----------------初始化输出----------------------
                 baseClass:MethodOfOverride
                 baseClass:MethodOfNew
                 ----------------下面方法输出------------------------
                 baseClass:MethodOfOverride
                 baseClass:MethodOfNew
                 
                 
                 *********derivedClass tempClassB = new derivedClass()*********
                 ----------------初始化输出----------------------
                 derivedClass:MethodOfOverride value=0
                 baseClass:MethodOfNew
                 ----------------下面方法输出------------------------
                 derivedClass:MethodOfOverride value=2
                 derivedClass:MethodOfNew value=2
                 
                 
                 *********baseClass tempClassC = new derivedClass()********* 
                 ----------------初始化输出----------------------
                 derivedClass:MethodOfOverride value=0
                 baseClass:MethodOfNew
                 ----------------下面方法输出------------------------
                 derivedClass:MethodOfOverride value=2
                 baseClass:MethodOfNew
                 
                 
    */


            }

        }
  • 相关阅读:
    党务
    平台 大赛 公司
    音乐
    有趣的博主
    C++获取命令行参数命令
    360读全景
    3 海康网络相机官方例程(3)OpenCv + ffmpeg + rtmp 实现摄像头采集数据直播功能(不带cuda加速)
    使用opencv4进行分类器训练
    经典环境(2)OpenCV412+OpenCV-Contrib +vs2015+cuda10.1编译
    经典环境(1)OpenCV3.4.9+OpenCV-Contrib +vs2015+cuda10.1编译
  • 原文地址:https://www.cnblogs.com/day/p/1517864.html
Copyright © 2011-2022 走看看