java中方法可以被继承么,java中私有方法可以被继承吗?讨论1

问题2: 私有方法能否被子类改写?

public class Test{

public static void main(String[] args){

B bb = new B();

bb.b1();

}

}

//

class A{

private void a1(){

System.out.println("我是a1() 是private,被同包中的类B继承了,但是不能被B直接使用,我通过a5()来间接被类B使用");

}

void a2(){

System.out.println("我是a2() 是default,我被同包中的类B继承了,被B使用了");

}

protected void a3(){

System.out.println("我是a3() 是protected,我被同包中的类B继承了,被B使用了");

}

public void a4(){

System.out.println("我是a4() 是public,我被同包中的类B继承了,被B使用了");

}

public void a5(){

a1();

}

public void a6(){

a2();

}

public void a7(){

a3();

}

public void a8(){

a4();

}

}

class B extends A{

public void b1(){

a1();//ok

a2();//ok

a3();//ok

a4();//ok

a5();//ok*********注意通过这种写法最后调用的是重写前的a1()*************???????????

a6();

a7();

a8();

}

private void a1(){

System.out.println("我是重写的a1(),证明了private 可以被重写");

}

public void a2(){

System.out.println("我是重写的a2()");

}

public void a3(){

System.out.println("我是重写的a3()");

}

public void a4(){

System.out.println("我是重写的a4()");

}

}

程序输出:

我是重写的a1(),证明了private 可以被重写

我是重写的a2()

我是重写的a3()

我是重写的a4()

我是a1() 是private,被同包中的类B继承了,但是不能被B直接使用,我通过a5()来间接被类B使用

我是重写的a2()

我是重写的a3()

我是重写的a4()

///

通过输出可以看出。私有方法a1()似乎可以被重新,但是通过a5()间接调用,仍是重写前的a1().

但是非私有的方法a2(),a3(),a4()却不存在这个问题,百思考不得其解???????????

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值