gpt4 book ai didi

c# - C#中不调用基类构造函数的继承问题

转载 作者:行者123 更新时间:2023-11-30 13:53:44 26 4
gpt4 key购买 nike

我想知道为什么我在下面的代码中没有收到错误。我没有在基类中定义构造函数,但在派生类中定义了一个。代码仍然按预期运行。有人可以帮助我摆脱困惑吗。

class Shape
{
public void Area()
{
Console.WriteLine("I am a shape");
}
}

class Circle : Shape
{
double radius;
const double pi = 3.14;

public Circle(double rad)
{
radius = rad;
}

public new double Area()
{
return pi * radius * radius;
}
}

代码编译完美,并给出了我想要的结果。谢谢,

class Progam
{
static void Main(string[] args)
{
Shape s1 = new Shape();
s1.Area();

Shape s2 = new Circle(10);
s2.Area();

Circle c1 = new Circle(4.0);
Console.WriteLine(c1.Area());
}
}

最佳答案

如果没有定义其他构造函数,将自动执行默认的基本构造函数(即不带参数)。

当你没有显式定义构造函数时(就像你的问题),默认构造函数是隐式定义的

关于c# - C#中不调用基类构造函数的继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53008486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com