楼主
发表于: 2009-09-20 11:11:05
直接来代码
|
|||
#1 得分:0
回复于: 2009-09-20 12:00:36
|
|||
#2 得分:0
回复于: 2009-09-20 12:06:07
楼上的好像不行哦
|
|
#3 得分:0
回复于: 2009-09-20 12:08:35
在javaEE中重载
|
|
#4 得分:5
回复于: 2009-09-20 12:24:55
|
|||||||||
#5 得分:0
回复于: 2009-09-20 12:33:28
如果你的意思是想在Class3里继承Class2里的Class1_M1()的话,据我所知,好像是不被VB支持的。
|
|
#6 得分:0
回复于: 2009-09-20 12:48:37
我感觉VB里并不支持爷孙继承,它不会了解这种隔一代的血缘关系。你看下面的例子(Class1和Class2的定义同4楼):
上面这段代码说明,Class3能够了解自己继承自Class2,但是并不会进一步去了解Class2继承自Class1。所以你可以Setbb=cc,但是不能进一步Setaa=bb,更不能Setaa=cc。VB只能记录父类子类这样单层的继承关系。 |
|||||
#7 得分:0
回复于: 2009-09-20 12:54:09
class2里的class1_m1是class1里m1接口的实现,class3如果要继承class2里的class1_m1的话直接去实现class1里的m1接口好了。 |
|
#8 得分:0
回复于: 2009-09-20 12:57:44
学习
|
|
#9 得分:0
回复于: 2009-09-20 13:14:43
但是Class3就不能继承Class2里的实现了。 打个比方说,Class1是动物类,有个方法叫做吃(M1);Class2是哺乳动物类,Class2继承吃的方法(Class1_M1),加入自己的实现“弄死了再吃”;Class3是人,它要继承吃的方法,比较省力的办法是继承Class2的“弄死了再吃”的步骤,自己再加一个语句叫“烧熟了再吃”就可以了。 可是,在VB中并 不支持这样的爷孙继承。 Class3如果直接继承Class2的话,它就不能继承Class2吃的方法。因为在Class2里,它继承的Class1的吃的方法是私有的(PrivateSubClass1_M1)。所以,它只能直接继承Class1的M1方法,并且只好重复写上“弄死再吃”、然后加上“烧熟再吃”。 |
|
#10 得分:0
回复于: 2009-09-20 13:21:16
当然你可以试着把Class2里的PrivateSubClass1_M1改成PublicSubClass1_M1。之后在Class3里再实现Class2的方法Class1_M1,但是你会发现VB编译器会无法理解你的实现,因为你的实现现在叫Class2_Class1_M1,这个有二义性的名字会把VB编译器绕晕。
|
|
#11 得分:0
回复于: 2009-09-20 13:24:25
C2中实现的C1中的方法不能被公开,不支持多重继承关系,鄙视一下VB
|
|
#12 得分:0
回复于: 2009-09-20 13:40:31
6.0无法实现
|
|
#13 得分:3
回复于: 2009-09-20 13:41:08
这个问题虽然了解一些但是从来没在实际的项目中应用过,所以研究得不是很深,不知道能不能在Class2里面再加一个吃的方法(M1),Class3继承Class2的吃的方法(Class2_M1),并实现“烧熟了再吃”,这样Class3在Class2“弄死了再吃”的基础上再实现“烧熟了再吃” |
|
#14 得分:0
回复于: 2009-09-20 14:08:42
这样做虽然可以,但是假如Class1的吃的方法有一个步骤“抓住一个动物再吃”,用你的方法就无法继承了。 就是说,如果我希望既继承Class1的“抓住一个动物再吃”,也希望继承Class2的“弄死了再吃”,并且希望加上自己的“烧熟了再吃”,VB6是不支持的。 |
|
|
#15 得分:0
回复于: 2009-09-20 21:48:36
书上说了,不支持。
|
|
#16 得分:5
回复于: 2009-09-26 09:31:24
Implements与聚合配合是可以实现继承功能的.
class1代码:
class2代码:
class3代码:
窗口代码:
|
||||||||
|
#17 得分:5
回复于: 2009-09-26 09:49:34
又完善了一下:
Class1代码:
Class2代码:
Class3代码:
Form1代码:
|
||||||||
#18 得分:0
回复于: 2009-09-26 10:53:34
做QI接口hook...自己弄....
多重接口继承好像是不支持. |
|
#19 得分:0
回复于: 2009-09-26 13:15:41
这方法不错,支持! |
|
#20 得分:0
回复于: 2009-09-26 13:27:01
聚合?aggregate
|
|
|
#21 得分:0
回复于: 2009-09-26 14:11:48
其实是在用聚合模拟继承。 |
|
#22 得分:0
回复于: 2009-09-27 21:34:07
是的,虽然稍微麻烦一些,但还是可以实现继承的特性的. 原理是一样的,只是一个是编译器(或者运行环境)来实现的,一个是通过代码来实现的.. |
|
#23 得分:2
回复于: 2009-09-27 21:57:41
Implements语句
指定要在包含该语句的类模块中实现的接口或类。 语法 Implements[InterfaceName|Class] 所需的InterfaceName或Class是类型库中的接口或类的名称,该类型库中的方法将用与VisualBasic类中相一致的方法来实现。 说明 所谓接口就是代表接口封装的成员(方法以及属性)的原型集合;也就是说,它只包含成员过程的声明部分。一个类提供一个或多个接口的所有方法以及属性的一种实现方案。类的控制者每次调用函数时,该函数所执行的代码由类来提供。每个类至少应实现一个缺省接口。在VisualBasic中,一个已实现的接口中任何没有显式声明的成员都是缺省接口的隐式成员。 当VisualBasic类实现接口时,都会提供该接口的类型库中说明的所有Public过程的版本。除了提供接口原型与自编过程之间的映射关系之外,Implements语句还使这个类接收对指定接口ID的COMQueryInterface调用。 注意VisualBasic不能实现派生出来的类或接口。 在实现接口或类时,必须包括所用到的Public过程。如果在实现接口或类时遗漏了成员,就会产生错误。如果正在实现的类中某个过程还没有代码,则可以产生一个适当的错误信息(ConstE_NOTIMPL=&H80004001),以便用户意识到该成员还没有实现。 |
#24 得分:0
回复于: 2009-09-27 23:05:43
记下VisualBasic不能实现派生出来的类或接口。
感觉也不是绝对的。 |
|
#25 得分:0
回复于: 2009-09-28 11:03:57
注意VisualBasic不能实现派生出来的类或接口。
Implements只是实现不是派生 |
|
#26 得分:0
回复于: 2009-09-28 11:23:02
其实是在用聚合模拟继承啊。
|
|
#27 得分:0
回复于: 2009-09-28 11:27:30
印象中vb6好像不支持啊
|
|
|
#28 得分:0
回复于: 2009-09-28 11:29:49
太棒了太棒了太棒了太棒了太棒了太棒了太棒了
|
|
#29 得分:0
回复于: 2009-09-28 12:00:37
在Class3里继承Class2里的Class1_M1(
|
#30 得分:0
回复于: 2009-09-28 12:30:26
手工收藏
|
|
|
#31 得分:0
回复于: 2009-09-28 12:31:54
这样啊,不错啊,爽啊,我晕的啊
|
|
#32 得分:0
回复于: 2009-09-28 12:35:39
dddddddddddddddddddddddd
|
|
#33 得分:0
回复于: 2009-09-28 12:49:38
|
|
#34 得分:0
回复于: 2009-09-28 13:07:32
MARK
|
|
#35 得分:0
回复于: 2009-09-28 13:23:04
OptionExplicit
ImplementsClass1'Class3实现了Class1的默认接口 ImplementsClass2'Class3实现了Class2的默认接口 PrivatemobjClass2AsNewClass2'Class3聚合了Class2的一个实例 |
|
#36 得分:0
回复于: 2009-09-28 13:27:22
看着vb就是不如vc舒服呢
|
#37 得分:0
回复于: 2009-09-28 13:41:58
|
|
#38 得分:0
回复于: 2009-09-28 13:42:29
参考一下
|
|
|
#39 得分:0
回复于: 2009-09-28 14:15:59
GOOD
|
#40 得分:0
回复于: 2009-09-28 15:34:09
sdafsdfsdfdsf
|
|
#41 得分:0
回复于: 2009-09-28 16:13:01
学习
|
|
|
#42 得分:0
回复于: 2009-09-28 17:04:48
实现和继承是两种模型,实现的耦合度低容易控制,继承自动化程度高。
|
#43 得分:0
回复于: 2009-09-28 17:48:35
关注.
|
|
|
#44 得分:0
回复于: 2009-09-28 18:01:48
|
#45 得分:0
回复于: 2009-09-28 18:08:01
vb不支持,楼主别折腾了。
|
|
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。