Rez*_*iaq 4 vb6 variables inheritance member
我要说,我在继承(公共)变量时遇到了麻烦
Public Var As ClassThatIsIndependent
Run Code Online (Sandbox Code Playgroud)
如果我继承了持有它的类,上面的声明本身不会产生麻烦
Implements BaseClass
Run Code Online (Sandbox Code Playgroud)
我得到错误"对象模块需要为接口实现变量".我试过这些选项(都在ChildClass中)
Public Var As ClassThatIsIndependent
Run Code Online (Sandbox Code Playgroud)
和
Public BaseClass_Var As ClassThatIsIndependent
Run Code Online (Sandbox Code Playgroud)
但他们都没有解决问题.还有其他选择 我对可能的Set/Get解决方案持开放态度,但是,我更愿意将Var维护为公共变量.
小智 7
根据Visual Basic 6.0程序员指南,多态,实现属性部分:
假设我们通过向Declarations部分添加一个Public变量给Animal类一个Age属性:
Run Code Online (Sandbox Code Playgroud)Option Explicit Public Age As DoubleTyrannosaur和Flea类的代码模块中的Procedure过程现在包含用于实现Age属性的属性过程,
...
使用公共变量来实现属性对程序员来说非常方便.在后台,Visual Basic将该属性实现为一对属性过程.
您必须实施这两个程序.通过将值存储在私有数据成员中,可以轻松实现属性过程,如下所示:
Run Code Online (Sandbox Code Playgroud)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语法并在您自己的私有变量中处理它的数据存储.