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

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

LabVIEW2020新增功能接口类的继承问题

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

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

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

HOHO333_1-1600850542081.png

 

HOHO333_0-1600850400249.png

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

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

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

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

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

 

我想问一下,这个机制是LabVIEW有意为之还是软件Bug,在编程时能否利用这一特性?

 

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