zoukankan      html  css  js  c++  java
  • 变量初始化,基类构造器,基类构造器中调用虚函数,子类构造器

    正确顺序:变量初始化代码,基类变量初始化代码,基类构造器,基类构造器中调用虚函数,子类自己的构造器。

    基类构造器中调用的虚函数会起作用,因为此时对象已经构建好了,但是只是执行了变量的初始化代码,还没有经过子类自己的构造器的初始化。

    using System;
    
    namespace ConsoleApp3
    {
        class A
        {
            public A()
            {
                PrintFields();
            }
    
            public virtual void PrintFields() { }
        }
    
        class B:A
        {
            int x = 1;
            int y;
    
            public B()
            {
                y = 1;
            }
    
            public override void PrintFields()
            {
                Console.WriteLine($"x={x}, y={y}");
            }
        }
    
        interface IInterface
        {
            void test();
            void test(int a);
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                A b = new B();
            }
        }
    }

    结果

    x=1, y=0
  • 相关阅读:
    python高级语法
    python的内置类型
    Python现状
    前端项目技术栈
    1.22
    类型转换!
    文件上传下载!
    Struts2的Ognl详解
    第二章复习
    解耦和耦合
  • 原文地址:https://www.cnblogs.com/dirichlet/p/8328176.html
Copyright © 2011-2022 走看看