我正在为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