java吧 关注:1,275,421贴子:12,787,516
  • 5回复贴,共1

求教个关于继承的问题

只看楼主收藏回复

public class Father {
public static void main(String[] args){
Fu f=new Zi();
f.text();
}
}
class Fu{
public void text(){
this.t();
this.g();
}
private void t(){
System.out.println("Fu t");
}
public void g(){
System.out.println("Fu g");
}
}
class Zi extends Fu{
public void t(){
System.out.println("Zi t");
}
public void g(){
System.out.println("Zi g");
}
}
这段代码,最后输出结果是Fu t和Zi g,g是子类重写了父类方法,输出了g,t是父类的t方法私有化了,就输出父类的t了,不过我不太明白,子类不是不能重写父类的私有化方法吗,为什么运行完不报错?求大神


IP属地:北京1楼2015-03-11 21:50回复
    你可以加个@Override 就会报错了。


    2楼2015-03-11 22:01
    收起回复
      2025-08-25 06:28:16
      广告
      不感兴趣
      开通SVIP免广告
      加上@Override代表告诉编译器这个方法是重写的


      3楼2015-03-11 22:06
      回复
        被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。


        IP属地:广东4楼2015-03-12 00:04
        回复
          重写的方法不能缩小被覆盖方法的访问权限这点也需要注意


          IP属地:广东5楼2015-03-12 00:06
          回复