gpt4 book ai didi

c# - 在子类上创建默认构造函数

转载 作者:太空狗 更新时间:2023-10-29 22:16:59 26 4
gpt4 key购买 nike

我仍在学习 C#,只是有一个关于继承的基本问题。

假设我有一个抽象类 SportsPlayer:

public abstract class SportsPlayer
{

string name; /*1ai*/
int age; /*1aii*/
Sexs gender; /*1aiii*/

//1b
public SportsPlayer(string n, int a, Sexs g)
{
this.name = n;
this.age = a;
this.gender = g;
}
}

还有一个名为 SoccerPlayer 的子类:

public class SoccerPlayer : SportsPlayer
{
Positions position;
public SoccerPlayer(string n, int a, Sexs g, Positions p)
: base(n, a, g)
{
this.position = p;
}

//Default constructor
public SoccerPlayer()
{

}

是否可以在不传递参数的子类上创建一个构造函数,或者我认为为了在子类上创建一个默认构造函数,父类(super class)也必须有一个默认构造函数是否正确?


此外,如果我要向父类(super class)添加默认构造函数,我将如何在子类构造函数中初始化父类(super class)变量?在 Java 中它是 super(),在 C# 中它是??

public SoccerPlayer():base()
{
base.name = "";
}

???

最佳答案

你可以在派生类上创建一个无参数的构造函数,但它仍然需要向基类构造函数传递参数:

    //Default constructor
public SoccerPlayer()
: base("default name", 0, default(Sexs))
{

}

或者您可以向基类添加默认构造函数...

关于c# - 在子类上创建默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874294/

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