提问者:小点点

导入具有相同类名的两个不同包


import mypack.Print;
import anotherpack.*;

class Main{
     public static void main(String[] args) {
          System.out.println(Print.print("ab"));
     }
}

在这里,MyPack包的类print具有方法print(),另外,AnotherPack包的类print具有方法print()。 那么main类将调用哪个包的print()方法,为什么?


共1个答案

匿名用户

你可以这样做:

import mypack.Print as MyPrint;
import anotherpack.*;


System.out.println(Print.print("ab"));
System.out.println(MyPrint.print("ab"));

我知道这不是你问题的答案,但应该可以解决与你问题有关的问题。

编辑:

您将始终使用第一个导入,因为第二个没有被导入,因为已经有了一个打印类。 尝试:

import firstfolder.Print;
import secondfolder.Print;

结果如下:

The import secondfolder.Print collides with another import statement Java(268435842)

下面是您的代码将执行的代码示例。

import firstfolder.Print;
import secondfolder.*;
public class PrintTest {
    public static void main(String[] args) {
        System.out.println(Print.print("1"));
        System.out.println(firstfolder.Print.print("2"));
        System.out.println(secondfolder.Print.print("3"));
    }
}


package firstfolder;
public class Print {
    public static String print(String input) {
        return ("first imported fct: " + input);
    }
}


package secondfolder;
public class Print {
    public static String print(String input) {
        return ("second imported fct: " + input);
    }
}

产出

first imported fct: 1
first imported fct: 2
second imported fct: 3