找不到合适的方法来覆盖。 VS为什么一直告诉我这个错误?

时间:2015-12-03 15:48:17

标签: c#

这是我的代码......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Computer_Science_Student
{
    class CompSciStudent : Student
    {
        private double MATH_HOURS = 20;
        private double CS_HOURS = 40;
        private double GEN_HOURS = 60;

        private string _academicTrack;

        public CompSciStudent(string name, string id, string track)
            : base(name, id)
        {
            _academicTrack = track;
        }

        public string AcademdicTrack
        {
            get { return _academicTrack; }
            set { _academicTrack = value; }
        }

        public override double RequiredHours
        {
            get { return MATH_HOURS + CS_HOURS + GEN_HOURS; }
        }
    }
}

我不熟悉覆盖,所以我不确定这里出了什么问题。有任何想法吗?实际错误发生在第28行(公共覆盖双倍RequiredHours),但我觉得它与程序的第16行有关。

编辑:

学生班:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Computer_Science_Student
{
    abstract class Student
    {
        private string _name;
        private string _id;

        public Student(string name, string id)
        {
            _name = name;
            _id = id;
        }

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public string ID
        {
            get { return _id; }
            set { _id = value; }
        }

        public abstract double RequiredhOurs
        {
            get;
        }
    }
}

现在该程序仍然没有说合适的覆盖方法,并且"' CompSciStudent'没有实现继承的抽象成员' Student.RequiredhOurs.get'计算机科学专业学生"。

1 个答案:

答案 0 :(得分:1)

您的代码中存在拼写错误。 您无法覆盖RequiredHours的原因是因为在您的学生班级中写了RequiredhOurs。请注意首都' O'在你的CompSciStudent课程中,它写了RequiredHours注意到资本' H'。 当您的父类方法包含关键字override时,也会使用virtual关键字。