[英]Create constructor for class that inherits from abstract class
我有一个继承的抽象 class 。 从抽象 class 继承的 class 应该有一个扩展的构造函数。
我在互联网上找不到我要找的东西,因为我不知道该怎么说。
我的代码如下所示:
我的动物摘要 class
public abstract class Animal : PictureBox
{
public string name { get; }
public int age { get; }
public bool gender { get; }
public Image img { get;}
protected Animal(string name, int age, bool gender)
{
this.name = name;
this.age = age;
this.gender = gender;
}
public virtual void SayYourName()
{
Debug.WriteLine("My age is:", name);
}
public virtual void SayYourAge()
{
Debug.WriteLine("My age is:", age);
}
public virtual void SayYourGender()
{
if (gender == true)
{
Debug.WriteLine("My gender is Male");
}
else
{
Debug.WriteLine("My gender is Female");
}
}
public virtual void eat()
{
Debug.WriteLine("I ate!");
}
我的两栖动物摘要 Class
{
public abstract class Amphibian : Animal, ISwim, IWalk
{
public void swim()
{
Debug.WriteLine("I swam!");
}
public void walk()
{
Debug.WriteLine("I walked!");
}
}
我的青蛙摘要 class
public abstract class Frog : Amphibian
{
}
我的非洲牛蛙 class
public sealed class African_bullfrog : Frog
{
public African_bullfrog(string name, int age, bool gender)
: base(name, age, gender)
{
this.img = Zoo.Properties.Resources._01__African_Bullfrog;
}
我的问题发生在最后一个代码部分
您从Animal
继承的所有类都必须提供Animal
所需的信息,因此您必须提供一个构造函数来获取这些信息并将它们传递给base
构造函数。
public abstract class Amphibian : Animal, ISwim, IWalk
{
public Amphibian(string name, int age, bool gender):base(name, age, gender)
{
}
// ...
}
public abstract class Frog : Amphibian
{
public Frog(string name, int age, bool gender):base(name, age, gender)
{
}
}
public sealed class African_bullfrog : Frog
{
public African_bullfrog(string name, int age, bool gender)
: base(name, age, gender)
{
// ...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.