在C#中,当我们创建一个继承的类对象时,它是否也创建了一个基类对象?因为它从子类的构造函数中调用基类构造函数而感到困惑。
将从子类构造函数调用基类构造函数, 创建一个基类对象?
答案 0 :(得分:2)
只创建了一个对象,但它有两个“层” - 基类属性和行为以及继承的类属性和行为。所以在某种意义上,答案是“是的,创建了一个基类对象”(该对象具有与任何其他基类对象相同的属性和行为),但它与继承的类是同一个对象,所以说“否”也是如此,还没有创建基础对象。“关键的区别是“也”。
事实上,一个对象看起来可能是两个不同的东西(或更多),这是面向对象的核心。这就是它既强大又复杂的原因。
答案 1 :(得分:1)
不,它不会创建基类的对象,继承的类的对象可以具有基类属性的可访问性(根据保护级别)。这样只能初始化特定成员(可用于继承的类),不会创建基类的对象。
答案 2 :(得分:0)
不,这样做不会创建基类的对象。当创建子类的对象时,即使在调用子类构造函数之前也会自动调用基类的构造函数,因此我认为我们不需要从子类调用基类构造函数。
通常,基类构造函数用于在子类启动实际任务之前在后台执行某些任务。