2013-06-30 153 views
0

示例情況如下:我有一家商店出租物品。項目(類項目的對象)可以由PrivateCustomer或BusinessCustomer租用,它們都是Customer的子類。 一個項目有一個字符串名稱和一個對租用它的客戶對象的引用。相同屬性的不同子類

我的問題是:我怎樣才能使私人和商業客戶都被接受?只使用Customer超類(賦予Item類屬性private Customer rentBy)似乎不起作用,那麼它就不會在構造函數中接受PrivateCustomer。

我知道這是一個非常基本的問題,但我顯然用錯誤的關鍵字搜索,因爲我找不到答案。

+2

向我們顯示您的代碼。它應該像描述的那樣工作 – Mirco

+1

您必須向我們展示您的代碼。通常,接受超類參數的構造函數將接受該超類的任何子類的實參。 –

+0

「似乎沒有工作」非常模糊。請發佈示例代碼和錯誤。 –

回答

1

請確保在您的代碼中沒有使用任何PrivateCustomer或BusinessCustomer屬性,只有Customer。如果私人和企業CU都繼承了客戶,那應該都是可行的。

示例代碼將有所幫助。

+0

謝謝,那就是問題所在。我使用了一個在PrivateCustomer和BusinessCustomer中定義的方法printDetails(),但不在Customer中定義。 將public void printDetails(){}放入Customer解決它。 – helm

+1

不客氣。請考慮接受這個答案:-)。如果客戶沒有做任何事情,你可能還想讓你的printDetails方法聲明爲abstract – Ayman

相關問題