Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net-从父类调用子方法(Vb.net多态性)_Vb.net_Polymorphism - Fatal编程技术网

Vb.net-从父类调用子方法(Vb.net多态性)

Vb.net-从父类调用子方法(Vb.net多态性),vb.net,polymorphism,Vb.net,Polymorphism,我是Vb.net的新手,我尝试执行多态性 这是我的界面“IMyConnection” 在Main类中,我创建了一个这样的新实例 Dim connection As IMyConnection connection = New AccessConnection() Dim accessConnection As AccessConnection = connection accessConnection.setDataSource("D:\Access DB\mdb\Akademik.mdb")

我是Vb.net的新手,我尝试执行多态性

这是我的界面“IMyConnection”

在Main类中,我创建了一个这样的新实例

Dim connection As IMyConnection
connection = New AccessConnection()
Dim accessConnection As AccessConnection = connection
accessConnection.setDataSource("D:\Access DB\mdb\Akademik.mdb")
但是当我调用一个从不在IMyConnection中声明的函数时

Imports System.Data.Common

Interface IMyConnection
    Sub openConnection()
    Sub closeConnection()
    Function getConnection() As DbConnection
    Function executeQuery(ByVal querySelect As String) As DbCommand
    Function executeUpdate(ByVal queryUpdate As String) As Boolean
End Interface
connection.setDataSource("D:\Access DB\mdb\Akademik.mdb")
我收到错误信息

'setDataSource' is not a member of 'WindowsApplication1.IMyConnection'
为了处理这个错误,我创建了这样的新对象

Dim connection As IMyConnection
connection = New AccessConnection()
Dim accessConnection As AccessConnection = connection
accessConnection.setDataSource("D:\Access DB\mdb\Akademik.mdb")
请帮我解决这个问题,我找不到任何关键字来找到更好的解决方案
谢谢

接口IMyConnection不知道setDataSource方法。这就是它不起作用的原因。您可以通过使用Ctype/Directcast将接口强制转换为AccessConnection类型来解决这个问题。谢谢,我在vb中找到了一些关于强制转换类型的示例,这段代码也可以使用。。Dim accessConnection As accessConnection=CType(connection,accessConnection)accessConnection.setDataSource(“D:\Access DB\mdb\Akademik.mdb”)接口IMyConnection不知道setDataSource方法。这就是它不起作用的原因。您可以通过使用Ctype/Directcast将接口强制转换为AccessConnection类型来解决这个问题。谢谢,我在vb中找到了一些关于强制转换类型的示例,这段代码也可以使用。。Dim accessConnection As accessConnection=CType(connection,accessConnection)accessConnection.setDataSource(“D:\Access DB\mdb\Akademik.mdb”)