C#中的继承问题没有调用基类构造函数

Sha*_*ood 3 c# inheritance constructor

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

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*035 6

如果没有定义其他构造函数,则会自动执行默认的基础构造函数(即没有参数).

如果没有显式定义构造函数(如在您的问题中),则隐式定义默认构造函数