NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

关于接口类不声明就可以继承方法的问题

LabVIEW2020新增了接口类,我今天在测试接口类的时候发现了一个不太正常的现象:

当一个接口类的某个方法设定为动态方法时

只要其他类有和这个方法同名的动态方法,即使不声明继承此接口,仍然可以使用这个类的动态方法。

11.GIF

22.GIF

如上图所示,IO.lvclass未声明继承Can_ReadF64和Can_ReadSTR接口

但是IO.lvclass仍然可以连接Can_ReadF64接口的ReadF64方法,连接后图标自动变成IO.lvclass内“重写的”ReadF64函数。(这有点像多态VI)

另外,根据继承原则,重写的VI应该与被重写的VI输入输出接口完全一致,不然会报错。

在上面这种情况下,即使在IO.lvclass内“重写的”ReadF64函数输入输出与Can_ReadF64接口的ReadF64方法不一样,仍然可以连线。

(确实也有点多态VI的意思)

 

这个现象正常吗?

0 项奖励
1 条消息(共 1 条)
863 次查看