2015-12-03 55 views
-7

這裏是我的代碼...沒有發現合適的方法被覆蓋。爲什麼VS一直告訴我這個錯誤?

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行(public override double 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’計算機科學學生「。

+6

你可以發佈'學生'嗎?它是否有'虛擬'或'抽象'RequiredHours'成員? – Sinatr

+0

我沒有看到任何行號...你需要在你的描述中更清楚 – Plutonix

+0

我們真的需要看到'學生'類 – Sybren

回答

1

您的代碼中存在拼寫錯誤。 您無法重寫RequiredHours的原因是因爲在您的學生課程中,它被編寫爲RequiredhOurs。注意大寫字母'O',而在CompSciStudent類中寫入RequiredHours則注意大寫'H'。 當您的父類方法包含關鍵字virtual時,還會使用override關鍵字。

相關問題