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


            }

        }
  • 相关阅读:
    启动Mysql后找不到服务或出现找不到指定文件
    WEB-MVC模式图示
    Java中Map集合的遍历方式
    sun.misc.BASE64Encoder找不到jar包的解决方法
    Tomcat常用的网站发布方式
    Sql Server查询行号
    Mysql下载安装问题
    【数学】环逆序
    【搜索】【the first editoral】OpenJudge 我是最快的马
    The First Blog
  • 原文地址:https://www.cnblogs.com/day/p/1517864.html
Copyright © 2011-2022 走看看