java - 在vb.net中使用IComparable来比较石头剪刀布游戏中的武器(与JAVA中的Comparable相同)

标签 java vb.net oop icomparer

我是编程和面向对象编程的新手,所以请原谅我知识的缺乏。

作为石头剪刀布游戏的一部分,我想在 VB.NET 中创建一个抽象父类(super class)(武器),它具有子类(石头、剪刀、布)。我找到了 JAVA 等效项:

 public abstract class Weapon implements Comparable<Weapon> {
    }



    public class Paper extends Weapon {

        @Override
        public int compareTo(Weapon o) {
            if (o instanceof Paper)
                return 0;
            else if (o instanceof Rock)
                return 1;
            return -1;
        }
    }

    public class Rock extends Weapon {

    @Override
    public int compareTo(Weapon o) {
        if (o instanceof Rock)
            return 0;
        else if (o instanceof Scissors)
            return 1;
        return -1;
    }
}

    public class Scissors extends Weapon {

    @Override
    public int compareTo(Weapon o) {
        if (o instanceof Scissors)
            return 0;
        else if (o instanceof Paper)
            return 1;
        return -1;
    }
}

我目前有以下内容:

Public MustInherit Class Weapons

Public Class Rock
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer


    End Function

End Class

Public Class Paper
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer

    End Function

End Class

Public Class Scissors
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer

    End Function

End Class

下课

有人可以更正代码,以便可以比较石头、布和剪刀对象吗?任何帮助将不胜感激。

谢谢

最佳答案

像这样:

Public Class Rock
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer
        If TypeOf Weapons Is Rock Then
            Return 0
        ElseIf TypeOf Weapons Is Scissors Then
            Return 1
        Else
            Return -1
        End If
    End Function
End Class

' etc.

关于java - 在vb.net中使用IComparable来比较石头剪刀布游戏中的武器(与JAVA中的Comparable相同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963244/

相关文章:

c# - .NET 中的开源 EDIFACT BAPLIE 解析器?

oop - 抽象类与接口(interface)来表示一个家庭

Ruby - 如何从控制台(stdin)测试 nil 或空字符串

vb.net - 在VB中的字符串中使用左双引号

sql-server - sql server 查询中的明智移位日期时间检查

python - 如果构造函数参数无效,如何返回 None

java - 代码陷入循环

java - 在 OATS Java(不是 javascript)中打开并最大化浏览器窗口

java - 一段时间后重复调用webservice

java - Spring boot 测试 - 模拟配置