我有一個需要開發的程序。爲了保密,我會使用模糊的術語。我有一個包含由幾個不同類共享的成員的小部件。我會在兩個階段處理一個小部件。每個階段都有不同的成員,但他們確實也有一些成員。這是結構圖。繼承或組成?
Widget()
|- -|
SWidget()PWidget()
| - |
階段1()階段2()
Swidget和Pwidget從窗口小部件
Swidget繼承包含2個pwidgets
stage1和stage2從Swidget繼承。
我有一個類,需要實現兩種stage1或stage2的
如果我宣佈變量作爲Swidget我只能看到什麼是常見的。我看不到stage1或stage2特有的內容。我該如何解決這個問題?繼承對一切都有效,但它們的區別。請指教!
編輯用戶張貼的 「答案」:
stage1和stage2幾乎完全一樣。他們與一些成員和一些方法不同。問題是我無法在基類中創建屬性來設置特定子類中的屬性。在我知道其特定成員的值之前,stage1/stage2類被實例化。因此,如果我在UI中聲明基類的實例,我無法設置它們。基類對子類一無所知。但是,爲了讓所有的屬性和方法都可以通過UI訪問,我必須聲明其中的一個,並使用我需要的一個。
您的格式需要修正。如果這是作業,請將其標記爲有作業。 「爲了保密,我會用模糊的術語」通常意味着這是作業。 – 2010-09-30 19:19:07
作文在哪裏?更不用說:Stage1和Stage1在他們所做的事情上有多相似,特別是他們將從外部調用的方法?你的班級如何知道是否實施Stage1或Stage2,並且它是否做了不同的事情?你在看什麼語言? – 2010-09-30 20:21:49
由於現在還沒有足夠的信息來回答這個問題,我正在投票結束。 – 2010-09-30 20:56:17