• 放在首页,希望你们帮我来解说一下这个简单的问题,有没有其它的实现方式。


    有两个接口
    Public Interface IMessage
        Sub ShoMessage()
    End Interface

    Public Interface ITextInfo
        ReadOnly Property Text() As String
    End Interface

    实现这两个接口的类有两个
    Public Class Message
        Implements IMessage
        Public Sub ShoMessage() Implements IMessage.ShoMessage
            MsgBox("Message")
        End Sub
    End Class

    Public Class TextInfo
        Implements ITextInfo
        Public ReadOnly Property Text() As String Implements ITextInfo.Text
            Get
                Return "TextInfo"
            End Get
        End Property
    End Class

    现在有一个第三方的类对这两个类进行操作
    Public Class Manager
        Public Sub Execute(ByVal obj As Object)
            MsgBox("无效的类")
        End Sub

        Public Sub Execute(ByVal obj As ITextInfo)
            MsgBox(obj.Text)
        End Sub

        Public Sub execute(ByVal obj As IMessage)
            obj.ShoMessage()
        End Sub
    End Class

    下面的调用程序。
        Sub Main()
            Dim m As New Manager
            Dim obj As Object = New TextInfo
            m.Execute(obj)
            obj = New Message
            m.Execute(obj)
            Console.ReadLine()
        End Sub

    为什么总是执行到了
       Public Sub Execute(ByVal obj As Object)
            MsgBox("无效的类")
        End Sub
    这个方法。

    目前我所知道的,如果外部不使用object能正确的找到对应的方法.

    如果去掉Public Sub Execute(ByVal obj As Object)方法,也能执行正确,如果我目前需要有Public Sub Execute(ByVal obj As Object)这样一个方法,也能执行相应接口的方法啊。

  • 相关阅读:
    netbeans 打开项目时没有出现咖啡哪个标记
    java swing客户端程序调试的一些方式
    java客户端布局 GroupLayout 控件、按钮等布局
    ActiveMQ 增加消息 消费消息
    HBase学习解析之起源.md
    Hadoop学习解析之资源管理调度框架YARN
    Hive学习解析之工作原理.md
    Hive学习解析之系统架构.md
    js实现ajax获取的文件base64字符串处理.md
    springboot2.x整合quartz2.x.md
  • 原文地址:https://www.cnblogs.com/zqonline/p/720088.html
Copyright © 2020-2023  润新知