这是我的代码......
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'计算机科学专业学生"。
答案 0 :(得分:1)
您的代码中存在拼写错误。
您无法覆盖RequiredHours的原因是因为在您的学生班级中写了RequiredhOurs
。请注意首都' O'在你的CompSciStudent课程中,它写了RequiredHours
注意到资本' H'。
当您的父类方法包含关键字override
时,也会使用virtual
关键字。