当前位置: 技术问答>java相关
请教有关private的问题!!!!!!
来源: 互联网 发布时间:2015-07-31
本文导语: public class Tester { public static void main(String args[]) { A ref1 = new A(); Tester test = new Tester(); System.out.println(ref1.g()); } private int f() { //!!!!!! return 2; } int g() { return f(); } class A extends Tester { int...
public class Tester {
public static void main(String args[]) {
A ref1 = new A();
Tester test = new Tester();
System.out.println(ref1.g());
}
private int f() { //!!!!!!
return 2;
}
int g() {
return f();
}
class A extends Tester {
int f() {
return 1;
}
}
output is :
2
疑问我将//!!!!那行的private 去掉,就可以重载了。结果就为1了。
可是编译时也能过,没说 private的方法不能重载呀???
public static void main(String args[]) {
A ref1 = new A();
Tester test = new Tester();
System.out.println(ref1.g());
}
private int f() { //!!!!!!
return 2;
}
int g() {
return f();
}
class A extends Tester {
int f() {
return 1;
}
}
output is :
2
疑问我将//!!!!那行的private 去掉,就可以重载了。结果就为1了。
可是编译时也能过,没说 private的方法不能重载呀???
|
是你重载的方法int f() {
return 1;
}
}
扩大了访问权限,所以出现你所说的情况。
另外你要是重载的方法应该有不同个数和类型的参数。
return 1;
}
}
扩大了访问权限,所以出现你所说的情况。
另外你要是重载的方法应该有不同个数和类型的参数。
|
私有方法是不能重载的,这是Java安全性的一个显著特点。