我无法继承(公共)变量,让我们说
Public Var As ClassThatIsIndependent
上面的声明不会给自己带来麻烦,但是,如果我继承了持有它的类
Implements BaseClass
我得到错误"对象模块需要为接口"实现变量。我已尝试过这些选项(都在ChildClass中)
Public Var As ClassThatIsIndependent
和
Public BaseClass_Var As ClassThatIsIndependent
但他们都没有解决问题。还有其他选择我对可能的Set / Get解决方案持开放态度,但是,我更愿意将Var维护为公共变量。
答案 0 :(得分:7)
根据Visual Basic 6.0程序员指南,多态性,Implementing Properties部分:
假设我们通过向Declarations部分添加一个Public变量给Animal类一个Age属性:
Option Explicit Public Age As Double
Tyrannosaur和Flea类的代码模块中的过程下拉列表现在包含用于实现Age属性的属性过程,
...
使用公共变量实现属性对程序员来说非常方便。在幕后,Visual Basic将该属性实现为一对属性过程。
您必须实施这两个程序。通过将值存储在私有数据成员中,可以轻松实现属性过程,如下所示:
Private mdblAge As Double Private Property Get Animal_Age() As Double Animal_Age = mdblAge End Property Private Property Let Animal_Age(ByVal RHS As Double) mdblAge = RHS End Property
私有数据成员是一个实现细节,因此您必须自己添加它。
即#"公共界面"无论您使用Public变量还是使用Property Get / Let定义它们都完全相同。要在接口中实现属性,您不能使用Public变量方法,需要使用Property Get / Let语法并在您自己的私有变量中处理它的数据存储。