我正在爲VBA中的OOP(面向對象編程)構建一些材料。 任何人都可以列出VBA中可用的OOP概念嗎?可用的OOP概念列表
例如,從我的閱讀中,我發現:
- 繼承是不VBA中。
- 封裝的概念在那裏,因爲你可以使用訪問修飾符「私人」,並建立一個公共財產。
我正在爲VBA中的OOP(面向對象編程)構建一些材料。 任何人都可以列出VBA中可用的OOP概念嗎?可用的OOP概念列表
例如,從我的閱讀中,我發現:
這裏有一些意見我已經與OOP概念在工作時VBA製作:
Class_Initialize
方法,該方法在實例化對象時調用,但不能重載以處理參數。如果你想強制你的課程在沒有設定特定屬性的情況下不能「完全實用」,那麼你必須編寫自己的方式來做到這一點。VB6/VBA範例將類設想爲封裝對象的功能和屬性的一種方法。在這個意義上,VB6/VBA的對象就像任何其他基本的OOP環境一樣存在,並且在適當的時候應該鼓勵它們的使用和設計。
但是,由於缺少幾個關鍵的OOP特性,導致VB6/VBA在徹底實現完整的OOP設計模式時失敗。
VBA實際上支持接口,一個名爲IFoo的抽象類可以在任何其他類中使用'Implements IFoo'實現,全部其中可以作爲IFoos傳遞。 – 2010-06-29 17:04:44
@Alex是的。我忘記了VB6中的接口,因爲如果我記得,它們的使用仍然相當有限。 – 2010-06-29 17:45:48
VBA支持一些面向對象的概念,而不是其他的。
使用VBA,您可以創建自己的類,並且可以從這些類創建對象。但是,VBA不支持繼承,並且不能真正支持用於OO語言(如C++或.NET)的術語的經典含義中的'多態性'。
VBA類支持封裝和抽象。
VBA中的一個特殊缺點是封裝了對象數組。
您可以擁有對象數組,但不能向下多個級別。 解決方法存在,例如通過使用Variant類型,但是然後鬆散類型安全性。 這使得使用分層對象結構很麻煩,而可能會導致代碼錯亂。
http://stackoverflow.com/documentation/vba/5357/object-oriented-vba – Slai 2016-08-14 02:15:57