继承 - 棘手的OOP概念

时间:2018-01-29 10:05:47

标签: c# oop inheritance

关键是什么?

enter image description here请参考上图中的这个问题。上图中的每个类都包含一个实例构造函数和静态构造函数。 B类派生自A类。现在开始质疑,在以下每种情况下,构造函数的序列将在1,2,3和4之间调用。

a a = new A();

B b = new A();

A c = new B();

B d = new B();

参考上图,Method()将在下面的情况分别针对方法重载和方法隐藏的情况下调用类。方法编号为5和6

a.Method();

弘();

c.Method();

d.Method();

1 个答案:

答案 0 :(得分:0)

这实际上很容易测试

然而

Static Constructors (C# Programming Guide)

  

静态构造函数用于初始化任何静态数据,或者   执行仅需要执行一次的特定操作。它   在创建第一个实例或任何实例之前自动调用   静态成员被引用。

第一次访问类时会调用静态构造函数。因此,如果访问B,则首先调用B的静态构造函数,直到使用A时才调用A的静态构造函数。如果先使用A,则首先调用A的静态构造函数,然后再调用。

初始化类时将调用实例构造函数