可用OOP概念列表

可用OOP概念列表,oop,vba,excel,Oop,Vba,Excel,我正在为VBA中的OOP(面向对象编程)编写一些资料。 有人能给我列出VBA中可用的OOP概念吗 例如,从我的阅读中,我发现: 继承在VBA中不可用 封装概念就在这里,因为您可以使用访问修饰符“private”并构建公共属性 VBA支持某些OO概念,而不支持其他概念 使用VBA,您可以创建自己的类,也可以从这些类创建对象。但是,VBA不支持继承,并且不真正支持在诸如C++、或.NET、等OO语言中使用的术语的古典意义的“多态”。 VBA类确实支持封装和抽象。以下是我在VBA中处理OOP概念时所做

我正在为VBA中的OOP(面向对象编程)编写一些资料。 有人能给我列出VBA中可用的OOP概念吗

例如,从我的阅读中,我发现:

  • 继承在VBA中不可用
  • 封装概念就在这里,因为您可以使用访问修饰符“private”并构建公共属性

  • VBA支持某些OO概念,而不支持其他概念

    使用VBA,您可以创建自己的类,也可以从这些类创建对象。但是,VBA不支持继承,并且不真正支持在诸如C++、或.NET、

    等OO语言中使用的术语的古典意义的“多态”。
    VBA类确实支持封装和抽象。

    以下是我在VBA中处理OOP概念时所做的一些观察:

    • 不能在VBA中重载方法。然而,不管是好是坏,您都可以随意选择参数
    • 您有一个无参数的
      Class\u Initialize
      方法,该方法在实例化对象时调用,但不能重载以处理参数。如果您想在没有设置某些属性的情况下强制类不具有“完全功能”,那么您必须以自己的方式编写
    • VB6和VBA编辑环境强制您构建“类文件”,并将每个类保存在单独的文件中,这与模块不同
    • 类和模块都可以有公共字段和私有字段。模块中的公共字段本质上是一个全局变量
    • 模块在功能上类似于C#中的静态类。可以从应用程序中的任何模块调用公共代码
    VB6/VBA范例将类视为封装对象功能和属性的一种方式。从这个意义上讲,VB6/VBA的对象就像任何其他基本OOP环境一样存在,应该鼓励在适当的情况下使用和设计它们


    然而,由于缺少几个关键的OOP功能,VB6/VBA无法完全实现完整的OOP设计模式。

    VBA的一个特殊缺点是封装对象数组

    可以有对象数组,但不能向下移动多个级别。 解决方法是存在的,例如,通过使用变体类型,但是您会失去类型安全性。
    这使得使用分层对象结构很麻烦,但最终可能会得到复杂的代码。

    VBA实际上支持接口,一个名为IFoo的抽象类可以在任何数量的其他类中使用
    实现IFoo
    ,所有这些类都可以作为IFoo传递。@Alex没错。我忘记了VB6中的接口,因为如果我记得的话,它们的使用仍然非常有限。