日期:2014-05-20  浏览次数:20787 次

java子类复写私有方法问题
我很穷的,没多少积分了,20分问个问题
下面的代码会输出什么?为什么啊??



public class ExtendTest {
public static void main(String[] args) {
new Child().prt();
}
}

class Child extends Father {
public void printF() {
System.out.println("F-Child");
}

public void printM() {
System.out.println("M-Child");
}

}

class Father {
public void printF() {
System.out.println("public:Father");
}

private void printM() {
System.out.println("private:Mother");
}

public void prt() {
printF();
printM();
}

}


------解决方案--------------------
输出:
F-Child
private:Mother
第一个结果你懂得

子类不能覆盖父类的私有方法。
而且Child没有覆盖Father的prt方法。
所以第二个实际上调用的是Father的printM方法。

------解决方案--------------------
私有方法、静态方法没有重写一说,自然不存在多态
------解决方案--------------------
输出:
F-Child
private:Mother

所谓私有性private是指只有在该类内部可访问,就连子类也是无法访问的!不只是类方法,还有类成员也是一样。
------解决方案--------------------
引用:
输出:
F-Child
private:Mother
所谓私有性private是指只有在该类内部可访问,就连子类也是无法访问的!不只是类方法,还有类成员也是一样。
补充一点,私有方法没有覆盖或继承的说法。
------解决方案--------------------
私有的方法不能继承过来,谈不上什么覆写了