C#-没有给出与'Person.Person(string,string)'的所需形式参数'firstName'相对应的参数)>

问题描述 投票:2回答:2

好,所以我有两个简单的类,Person和Employee。

人员:

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public Person(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

员工:

public class Employee : Person
{
    public string DepartmentName { get; set; }
}

简单吧?员工继承人,但是有问题。雇员类给我一个错误,指出必须调用父类的构造函数。现在,有关类似问题的答案表明,我应该调用基类的构造函数,它将解决该问题。是的。

我的问题是,当雇员类本身没有自己的构造函数时,为什么要调用基类的构造函数?

[书名MCSD认证70-483表示:

此系统的一个奇怪之处是,您可以使用即使允许程序创建Employee类的实例而不调用Person类构造函数。这意味着对员工的以下定义上课是合法的:

public class Employee : Person
{
 public string DepartmentName { get; set; }
}

我的案子与本书所写的完全一样。该书说,如果子代没有自己的子代,则继承而不调用基类的构造函数是合法的。为什么我仍然收到此错误?即使我有相同的实现。

这本2018年书籍过时了/有错误吗?难道我做错了什么?还是C#中的新更新如果不调用父类的构造函数,则不允许子类?

谢谢。

好,所以我有两个简单的类,Person和Employee。 Person:公共类Person {公共字符串FirstName {get;组; }公用字符串LastName {get;组; } public Person(string ...

c# oop inheritance constructor default-constructor
2个回答
0
投票

看起来像是错字。因为继承中的每个派生类型的构造函数都应隐式或显式调用基本构造函数。


0
投票

[我同意,从MCSD认证书中获得更多信息可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.