[英]Using the constructor of the base class when creating new object of derived class?
[英]Why is the base class and derived class constructor getting called when creating object of the child class
Code :
class A
{
public A()
{
}
}
class B : A
{
public B()
{
}
}
class C : B
{
public C()
{
}
}
Main()
{
C a =new C();
}
创建新对象 C 时,首先调用 A 类构造函数,然后是 B 类构造函数,最后是 C 类构造函数。 假设我不想在子 C 中使用 A 类的任何变量。为什么要调用基类构造函数?
您的基类构造函数被调用是因为您已经从基类派生了子类。 根据定义,子类继承其基类的成员变量和函数。 您可能应该阅读更多关于面向对象继承如何工作的信息。
让我们举个例子。 假设你在你的程序中与人打交道。 您创建一个带有构造函数和成员变量名称、年龄和性别的人员类。 您可以将其实例化为任意数量的人。
然后,您希望在程序中具有更多功能,并创建两个新类,一个用于学生,另一个用于员工。
对于学生,您需要姓名、年龄、性别、年级、专业和年份,而对于员工,您需要姓名、年龄、性别、职位、薪水。
两个新类:Students 和Employees 派生自Person 类,因为他们需要姓名、年龄和性别。
如果您不希望类 C 创建它的基类,那么您需要做的就是不要让类 C 继承类 B。
Google 上有大量关于派生类及其工作方式的信息。 https://www.google.ca/?gws_rd=ssl#q=inheritance+in+object+oriented+programming
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.