Borrefts 2023-05-11 15:28 采纳率: 85.7%
浏览 21
已结题

C#入门中,不理解构造函数问题

请问为何这个C#程序不需要调用构造函数也不会报错了?

using System;
namespace ConsoleApp5
{
    /// <summary>
    /// 人类Person
    /// </summary>
    class Person        //  在人类里,声明三个属性
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Gender { get; set; }    
    }

    /// <summary>
    /// 学生类
    /// </summary>
    class Student : Person      //  类名后面加冒号,表示学生类,继承人类
    {
        public float Score { get; set; }        //学生类,在人类的基础上,增加一个分数属性

        public void StuSayHello()       //声明一个方法,进行自我介绍
        {

            Console.WriteLine("大家好,我是学生:{0},性别:{1},我今年{2}岁,这次的考试分数是{3}",
                this.Name, this.Gender, this.Age, this.Score);

        }
    }
    /// <summary>
    /// 教师类
    /// </summary>
    class Teacher : Person          //  类名后面加冒号,表示教师类,继承人类
    {
        public string Subject { get; set; }          //教师类,在人类的基础上,增加一个学科属性
        public void TeacherSayHello()       //声明一个方法,进行自我介绍
        {
            Console.WriteLine("大家好,我是{0}老师,性别:{1},我今年{2}岁,我带的科目是{3}",
                this.Name, this.Gender, this.Age, this.Subject);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Student stu = new Student();        //声明一个学生对象
            //给对象初始化
            stu.Name = "王迪";
            stu.Gender = "女";
            stu.Age = 18;
            stu.Score = 80;
            stu.StuSayHello();          //调用学生对象的StuSayHello()方法,输出自我介绍
            Console.ReadLine();
        }
    }
}


```

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-05-11 15:34
    关注

    Student stu = new Student();
    这里调用了默认的公有无参构造函数
    C#中,你不写构造函数,会有一个默认的无参公有构造函数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 请采纳用户回复 5月11日
  • 创建了问题 5月11日