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


            }

        }
  • 相关阅读:
    POJ 1142 Smith Numbers
    POJ 1171 Letter Game 解题思路
    人人德克萨斯牌出手规则整理
    OpenMP相关知识索引
    如何进行有效的沟通
    台哥算法练习:一个for循环打印九九乘法表
    啊哈,381654729!
    发牌的小窍门
    判断数abcdef能否被k整除(k属于[2,9])
    如何在数轴上找到一个数的倒数
  • 原文地址:https://www.cnblogs.com/day/p/1517864.html
Copyright © 2011-2022 走看看