为什么是这个结果呢? private 的意思就是只有在其所在的那个类里面才能使用,虽然实例了一个OverridingPrivate 的,但是不能使用其private的方法的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵.楼上只是贴代码时贴错了:class OverridingPrivate extends WithFinals {应为public void f() ,而现在他问的是private void f() 为什么不能访问...存在访问权限的问题. class WithFinals { void f() { System.out.println("WithFinals.f()"); }}class OverridingPrivate extends WithFinals { private void f() { System.out.println("OverridingPrivate.f()"); }}public class Hello { public static void main(String[] args) { OverridingPrivate op1 = new OverridingPrivate(); WithFinals op = op1; op.f(); }} 这样是不能通过编译的,如果父类中一个方法是子类可以看到的(比如说非private),那么子类如果提供了一样signature的方法(指:方法名字相同,参数个数相同,相应位置的参数的类型相同,返回参数可以不同),那么子类的这个方法的访问可见性要大于等于父类的那个方法。比如说:父类中的方法是 protected,那么子类的方法可以是:protected,或者public的,否则错误。 weblogic10.3配置向导问题 请教个线程的问题,请高手解答,在线求解 JSTL如何 返回参数a,在相应的action中如何接受这个参数a?? JSF中使用JfreeChart的问题 多filter处理post数据的问题 連接sql2000所產生問題 怎样得到当前服务器的操作系统是什么? 北京的朋友来看看 SAXParser与Parser 在解析xml时的区别 求传真图信息提取的方案,急!急!急! 请问org.apache.commons.net.tftp包在哪下载? 求研究liferay portal同行!
class OverridingPrivate extends WithFinals {
应为public void f() ,而现在他问的是private void f() 为什么不能访问...存在访问权限的问题.
void f() {
System.out.println("WithFinals.f()");
}
}
class OverridingPrivate extends WithFinals {
private void f() {
System.out.println("OverridingPrivate.f()");
}
}
public class Hello {
public static void main(String[] args) {
OverridingPrivate op1 =
new OverridingPrivate();
WithFinals op = op1;
op.f();
}
}
这样是不能通过编译的,如果父类中一个方法是子类可以看到的(比如说非private),那么子类如果提供了一样signature的方法(指:方法名字相同,参数个数相同,相应位置的参数的类型相同,返回参数可以不同),那么子类的这个方法的访问可见性要大于等于父类的那个方法。
比如说:父类中的方法是 protected,那么子类的方法可以是:protected,或者public的,否则错误。