抽象父类构造函数内方法重写

来源:百度知道 编辑:UC知道 时间:2024/09/21 14:48:16
请问:C#中抽象父类的构造函数中有一个方法是Virtual的,子类继承抽象父类后重写这个Virtual方法。此后实例化子类,抽象父类的构造函数也会被调用,此时抽象父类构造函数中的Virtual方法是用自己定义的还是用被子类重写的?谢谢。
我的意思是创建子类时,会层层追溯,调用父类的构造函数做初始化。此时父类中的构造函数是调用自己定义的Virtual方法还是调用已被子类复写的Virtual方法?

如果是重写 当然是执行子类重写的!

补充回答:调用的是子类的重写方法Virtual

你的父类的构造函数是virtual的?这个不可能的.
如果是普通函数/方法用Virtual,子类用override重写该方法, 父类的这个虚方法当然不会再执行.

虽然是父类的构造函数
但还是调子类的已重写的方法!
如果你想调用父类的方法,你可以在子类中的构造函数加base.方法名();