• 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
                 
                 
    */


            }

        }
  • 相关阅读:
    会议10
    会议09
    回忆8
    会议07
    团队报告三
    深圳展会问题关注
    移动电源频率设置
    安卓java设置字体颜色
    安卓取消默认的标题栏方法
    安卓,按钮清晰的事件注册写法
  • 原文地址:https://www.cnblogs.com/day/p/1517864.html
Copyright © 2020-2023  润新知