我有四個類。 Request,DerivedRequest,Handler,DerivedHandler。處理程序類具有以下聲明的屬性:在c中覆蓋具有派生返回類型的抽象屬性
public abstract Request request { get; set; }
的DerivedHandler需要,以便它返回DerivedRequest而不是覆蓋此屬性:
public override DerivedRequest request { get; set; }
有沒有人有關於如何使這項工作任何想法?
這不是嚴格把好OOP,因爲它違反了接口。某些類型的setter操作(帶有非常值的'')會意外拋出。 – recursive 2011-06-14 22:46:11
在這種情況下,我想,我不需要一個setter。我可以創建一個私有屬性並將其設置在構造函數中。這會照顧setter操作例外,是嗎? – Trevor 2011-06-14 22:59:04
在這種情況下,您不需要重寫該屬性。只要構造函數只接受DerivedRequest。 – recursive 2011-06-15 02:28:22