VB可以定义潜逃类吗

zodane 2005-09-06 10:00:52
需求分析:
定义一个技能类 ,
技能又分几种类别
...全文
131 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zodane 2005-09-10
  • 打赏
  • 举报
回复
现在我想问个最底层的问题 ,我有没有必要把技能做成类模块吗?
常规技能有5个, 但是每个技能所达到的效果都完全不一样。
是否分别做成类模块呢?
或者这样说,可否定义成TYPE ? 但是好象TYPE里 无法描述各参数之间的关系啊?
winehero 2005-09-07
  • 打赏
  • 举报
回复
VB只能使用Implements导入接口来继承,MSDN上有示例:
Implements 语句示例
下面的示例说明如何使用 Implements 语句来编写多个类都可以使用的一系列声明。通过 Implements 语句共享这些声明,所有的类都不必再自己进行声明。

假设有两个窗体。其中 Selector 窗体有两个按钮,Customer Data 和 Supplier Data。若要输入客户或供应商的名称及地址信息,用户就单击 Selector 窗体的 Customer Date 按钮或 Supplier Date 按钮,然后使用 Data Entry 窗体来输入名称和地址。Data Entry 窗体有两个文本字段,Name 和 Address。

下面的共享声明的代码位于称为 PersonalData 的类中:

Public Name As String
Public Address As String

有关处理客户数据的代码位于 Customer 类模块:

Implements PersonalData
Private Property Get PersonalData_Address() As String
PersonalData_Address = "CustomerAddress"
End Property

Private Property Let PersonalData_Address(ByVal RHS As String)
'
End Property

Private Property Let PersonalData_Name(ByVal RHS As String)
'
End Property

Private Property Get PersonalData_Name() As String
PersonalData_Name = "CustomerName"
End Property

有关处理供应商数据的代码位于 Supplier 类模块:

Implements PersonalData

Private Property Get PersonalData_Address() As String
PersonalData_Address = "SupplierAddress"
End Property

Private Property Let PersonalData_Address(ByVal RHS As String)
'
End Property

Private Property Let PersonalData_Name(ByVal RHS As String)
'
End Property

Private Property Get PersonalData_Name() As String
PersonalData_Name = "SupplierName"
End Property

下面的代码负责处理 Selector 窗体:

Private cust As New Customer
Private sup As New Supplier

Private Sub Command1_Click()
Dim frm2 As New Form2
Set frm2.PD = cust
frm2.Show 1
End Sub

Private Sub Command2_Click()
Dim frm2 As New Form2
Set frm2.PD = sup
frm2.Show 1
End Sub

下面的代码负责处理 Data Entry 窗体:

Private m_pd As PersonalData
Private Sub Form_Load()
With m_pd
Text1 = .Name
Text2 = .Address
End With
End Sub
Public Property Set PD(Data As PersonalData)
Set m_pd = Data
End Property
winehero 2005-09-07
  • 打赏
  • 举报
回复
VB只能使用Implements导入接口,MSDN上有示例:
Implements 语句示例
下面的示例说明如何使用 Implements 语句来编写多个类都可以使用的一系列声明。通过 Implements 语句共享这些声明,所有的类都不必再自己进行声明。

假设有两个窗体。其中 Selector 窗体有两个按钮,Customer Data 和 Supplier Data。若要输入客户或供应商的名称及地址信息,用户就单击 Selector 窗体的 Customer Date 按钮或 Supplier Date 按钮,然后使用 Data Entry 窗体来输入名称和地址。Data Entry 窗体有两个文本字段,Name 和 Address。

下面的共享声明的代码位于称为 PersonalData 的类中:

Public Name As String
Public Address As String

有关处理客户数据的代码位于 Customer 类模块:

Implements PersonalData
Private Property Get PersonalData_Address() As String
PersonalData_Address = "CustomerAddress"
End Property

Private Property Let PersonalData_Address(ByVal RHS As String)
'
End Property

Private Property Let PersonalData_Name(ByVal RHS As String)
'
End Property

Private Property Get PersonalData_Name() As String
PersonalData_Name = "CustomerName"
End Property

有关处理供应商数据的代码位于 Supplier 类模块:

Implements PersonalData

Private Property Get PersonalData_Address() As String
PersonalData_Address = "SupplierAddress"
End Property

Private Property Let PersonalData_Address(ByVal RHS As String)
'
End Property

Private Property Let PersonalData_Name(ByVal RHS As String)
'
End Property

Private Property Get PersonalData_Name() As String
PersonalData_Name = "SupplierName"
End Property

下面的代码负责处理 Selector 窗体:

Private cust As New Customer
Private sup As New Supplier

Private Sub Command1_Click()
Dim frm2 As New Form2
Set frm2.PD = cust
frm2.Show 1
End Sub

Private Sub Command2_Click()
Dim frm2 As New Form2
Set frm2.PD = sup
frm2.Show 1
End Sub

下面的代码负责处理 Data Entry 窗体:

Private m_pd As PersonalData
Private Sub Form_Load()
With m_pd
Text1 = .Name
Text2 = .Address
End With
End Sub
Public Property Set PD(Data As PersonalData)
Set m_pd = Data
End Property
zodane 2005-09-07
  • 打赏
  • 举报
回复
哪位好心人能够给个简单的例子?
zlt982001 2005-09-06
  • 打赏
  • 举报
回复
是继承吧
VB 使用 Implements 声明
zodane 2005-09-06
  • 打赏
  • 举报
回复
我在设计一个游戏,我讲一下我的需求
技能参数 :1 类别 常规技能和非常规技能
2 经验值 经验值满足一定条件升级别
3 级别
常规技能的级别上限是 3 非常规技能的级别上限是5 ,
常规技能在游戏中都各自发挥着效应 , 而非常规技能仅仅是一个记录参数 。无实际效应的。
技能与经验值之间的关系算法已经写到类模块中。
zodane 2005-09-06
  • 打赏
  • 举报
回复
Hoho 楼上 怎么越说越象java了,
到是2楼的 DLL , 可惜我没用过,可以详细一点吗?如果有类似代码就好了,
viena 2005-09-06
  • 打赏
  • 举报
回复
技能类的类模块中,添加一些不包含实现代码的空方法,即抽象类

细分的技能类,Implements 技能类,其中方法的具体实现是各不相同的
viena 2005-09-06
  • 打赏
  • 举报
回复
嵌套类,没听说过
Java里有内部类,但好像也不是你说的概念

如果你是说多态的话,VB里是用多重ActiveX接口来实现的
bluesky23 2005-09-06
  • 打赏
  • 举报
回复
写个DLL, 把几种 技能类别 全部集成到里面。
zodane 2005-09-06
  • 打赏
  • 举报
回复
纠正一下 是嵌套类
yinweihong 2005-09-06
  • 打赏
  • 举报
回复
可以,正如上面乐天和实心木头人讲的
一个类可以实现多个接口类(抽象类),使用Implements声明

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧