那麼我有一個疑問關於抽象關係「IS-A」和接口「HAS-A」功能。關於摘要和接口
例如我有以下類:
public interface IReport
{
int code { get; set; }
String description { get; set; }
void SetReport(String description, int code);
void DeleteReport();
}
public abstract class BugReport : IReport
{
public int? code { get; set; }
public String description { get; set; }
public void IReport.SetReport(String description, int code)
{
this.description = description;
this.code = code;
}
public void IReport.DeleteReport()
{
this.description = "";
this.code = null;
}
}
我知道我的錯誤報告類將始終相同的實現,但是我可以根據需要在子類擴展。如果用於例如在該類此標準將匹配的抽象類「用法」,而不是「是」的關係:
public abstract Parser : BugReport
{
}
是我的解析器錯誤報告?顯然不是,但它似乎是最合理的選擇,如果我讓我的BugReport作爲一個接口,我將不得不實現遍及我繼承的類的功能。所以我做錯了什麼,我應該繼續使用獨立於IS-A關係不匹配的抽象,否則我應該切換到接口?
我沒有看到'[C++]'的問題? – Yakk
我將刪除'C++'標籤,因爲這是純粹的'c#'問題 – billz
C++不是C#。選擇適當的語言。 – user2246674