如何让派生类从基类继承变量以具有不同的值

本文关键字:变量 继承 派生 基类 | 更新日期: 2023-09-27 17:56:46

>我有一个简单的游戏,在图片框中单击移动的图像会给玩家一个点,我计划为此添加另一个图像,以便子类在单击不同的图像时授予用户不同数量的分数。我想知道如何让派生类继承基类中的变量并更改数值。

以下是我的代码的相关部分:

 public class Monster
 {
    public static int Score = 1;
    public Monster()
    {
    }
 }
 class Skeleton:Monster         
 {
    public Skeleton()
    {
        Score = 2;
    }
 }

public partial class Form1 : Form
{
    PictureBox[] boxes;
    int initialscore = 0;
    public Form1()
    {
        InitializeComponent();
    }
    private void boxes_MouseClick(object sender, MouseEventArgs e)
    {
        for (int x = 0; x < 27; x++)
        {
            if (sender.Equals(boxes[x]))
            {
                Image grass = Image.FromFile("swamp.png");
                PictureBox temp = (PictureBox)sender;
                temp.Image = grass;
            }
            if (sender.Equals(boxes[x]))
            {
                PictureBox pb = (PictureBox)sender;
                if (pb.Tag == "skeleton.png")
                {
                    addScore(Monster.Score);
                }
            }
        }
        label1.Text = " Score: " +initialscore.ToString();  
    }
    public void addScore(int add)
    {
        initialscore += add;
        label1.Text = " Score: " + initialscore.ToString();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        addScore(0);
    }
}

如何让骷髅职业的分数值与怪物职业的分数值不同?是否需要添加/更改有关表格1的其他内容,如果是,需要做些什么来维护有效的分数系统?

如何让派生类从基类继承变量以具有不同的值

这应该可以解决问题:

public class Monster
{
    public Monster()
    {
        this.Score = 1;
    }
    public int Score
    {
        get;
        set;
    }
}
public class Skeleton : Monster
{
    public Skeleton()
        : base()
    {
        this.Score = 2;
    }
}