我们可以在同一个包中创建两个具有相同名称的同一个类,但是不同的.java程序

时间:2017-12-01 07:16:40

标签: java

我们可以在同一个包中创建两个具有相同名称的类,但是不同的.java文件。 错误是:"类型节点已经定义" 这里的节点是我的班级名称。

2 个答案:

答案 0 :(得分:0)

技术上可行。但是,只有将Java源代码(具有相同的名称/包)放入单独的源树中并单独编译它们。

然后,如果要在一个应用程序中使用已编译的类(具有相同的名称/包),则应用程序需要使用具有不同类路径的多个类加载器以及其他时髦的东西。

然后,你会遇到各种奇怪的行为;例如异常消息,例如“无法将foo.Bar强制转换为foo.Bar

不要去那里。最好使用不同的类名和/或不同的包名。

答案 1 :(得分:-2)

这看起来像是部分类使用。您可以在.NET中执行此操作,而不是在JAVA中执行此操作,但这些类在不同文件中将是相同的类。看看部分类的用法。

public partial class CoOrds
{
    private int x;
    private int y;

    public CoOrds(int x, int y)
    {
        this.x = x;
        this.y = y;
    }
}

public partial class CoOrds
{
    public void PrintCoOrds()
    {
        Console.WriteLine("CoOrds: {0},{1}", x, y);
    }

}

class TestCoOrds
{
    static void Main()
    {
        CoOrds myCoOrds = new CoOrds(10, 15);
        myCoOrds.PrintCoOrds();

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output: CoOrds: 10,15