VBA支持一些OO概念,而不支持其他概念.
使用VBA,您可以创建自己的类,并且可以从这些类创建对象.但是,VBA不支持继承,并且不支持在OO语言(如C++或.NET)中使用的术语的经典含义中的"多态".
VBA类确实支持封装和抽象.
以下是我在使用 VBA 中的 OOP 概念时所做的一些观察:
Class_Initialize在实例化对象时调用的无参数方法,但不能重载该方法来处理参数。如果您想在没有设置某些属性的情况下强制您的类不“功能齐全”,则必须编写自己的方法来执行此操作。VB6/VBA 范式将类设想为封装对象的功能和属性的一种方式。从这个意义上说,VB6/VBA 的对象就像任何其他基本 OOP 环境一样存在,并且应在适当的情况下鼓励它们的使用和设计。
然而,由于缺少几个关键的 OOP 功能,导致 VB6/VBA 无法彻底实现完整的 OOP 设计模式。