原帖位址 http://www.eclipselight.org/rcp/83/
做rcp開發難免要繼承一些widget來定製自己的小組件,但是初學swt者會驚奇的發現,當繼承了乙個widget之後,程式根本執行不起來。
它會丟擲乙個swtexception(「subclassing not allowed」)異常。解決這個問題的方法很簡單,只要在你的實現類裡面重寫乙個方法並保留空方法體就可以了:
這裡我們應該深入去探索一下,為什麼swt要做這樣的限制呢?google了一下,發現原來swt是不鼓勵程式設計師去繼承它的widget類的。從物件導向的角度看,繼承乙個具體類或稱實現類(非抽象類)並不是個好注意,它是非常不安全的。物件導向的思想說:實現類就不是被用來繼承的,它唯一的作用應該是被拿來建立物件的。
乙個實現類被改動的機率是非常大的,增加新功能,優化實現,重構**等等。試想,我們繼承了乙個swt的實現類,等到下一版本該實現類改了怎麼辦?那我們所有的子類也都要改了?使用者那裡一公升級他們的系統全不work了!
大概就是這樣吧,不過很多情況我們還是非得繼承不可,不然總不至於讓我們什麼都從底層去實現吧?
最後這裡給出乙個簡單的繼承swt label的例子:
db 錯的原因
c documents and settings administrator sqlplus ssada dada zhengche 2.sql cc.txt c c documents and settings administrator sqlplus bmpzc bmpzc zhengche ...
Hibernate 繼承對映可能會遇到的錯誤
我們在配置hibernate的時候,預設是會配置下面的兩個屬性的 1 property name hibernate.default catalog hibernate property 2 property name hibernate.default schema test property 但...
a元素顏色不能繼承父元素的原因
首先先思考乙個問題 為什麼都沒設定給 a元素和p元素的字型顏色,他兩都有顏色,而且顏色還不一樣。這裡涉及到乙個知識點,繼承,父元素填寫跟文字內容相關的css樣式可以被子元素繼承,但是也不是絕對,上面的a元素就是乙個例子,那到底是什麼原因導致了這種情況發生呢,這就涉及到了頁面渲染的過程 瀏覽器呢,他在...