【发布时间】:2021-01-04 09:08:18
【问题描述】:
我有一个这样的测试课。
内部类有一个方法c()。c() 有三行代码。
第一行和第三行没问题,但第二行是错误,上面写着a(java.lang.String) has private access。
为什么b()方法没问题,而重载的方法a(String s)是错误的?
public class Test {
public void a() {
}
private static void a(String s) {
}
private static void b() {
}
private class Inner extends Test{
void c() {
a();
a("");
b();
}
}
}
【问题讨论】:
-
我试过jdk1.8,但没有错误
-
除了错误的行之外,您的代码没有任何问题。您必须以静态方式访问该方法,例如:
Test.a("");。 -
静态 a(...) 不是重载。这是个坏主意。要重载它应该是
public void a(String s) {...}。 -
a(java.lang.String) has private access虽然 true 与问题无关,也不是问题/问题。
标签: java overloading