- 主题:重载私有方法会有什么后果
B b = new B();
B.bar();
--------
B的bar方法不是static的
--
FROM 114.247.188.*
没写全啊
【 在 guestking (无) 的大作中提到: 】
: 你的foo()都没有方法体
: 为什么可以运行?
--
FROM 113.110.227.*
override一般不翻译成重载,重载是overload
override可以翻译成覆盖或者重写
【 在 qlogic (戒网了) 的大作中提到: 】
: class A{
: private void foo();
: public void bar() {foo();}
: ...................
--
FROM 210.12.183.*
也是B
【 在 qlogic (戒网了) 的大作中提到: 】
: 不会报错,可以运行
: B b= new B(), 调用的是B里的foo方法
: A b = new B(), 还没有测试,
: ...................
--
FROM 58.61.241.*
java的设计思路是正常情况下私有的内容外部不可见也不需要管
所以子类写了一个foo()当然就是自己的foo()
什么?父类有一个同名的?关我毛事。当它不存在就对了。
【 在 qlogic (戒网了) 的大作中提到: 】
: 标 题: 重载私有方法会有什么后果
: 发信站: 水木社区 (Thu Jun 17 17:52:32 2021), 站内
:
: class A{
: private void foo();
: public void bar() {foo();}
: }
:
: class B extends A{
: private void foo();
: @override
: public void bar() {foo();}
: }
:
: B b = new B();
: b.bar();
:
: 这里的bar是调用A里的foo,还是B里的foo
:
: --
:
: ※ 修改:·qlogic 于 Jun 18 15:18:50 2021 修改本文·[FROM: 113.110.227.*]
: ※ 来源:·水木社区 mysmth.net·[FROM: 113.110.227.*]
--
修改:qlogic FROM 113.110.227.*
FROM 76.126.252.*
你访问不了父类的private方法,要想访问到,父类得用protected
【 在 qlogic (戒网了) 的大作中提到: 】
: class A{
: private void foo();
: public void bar() {foo();}
: }
--
FROM 111.193.122.*
首先,那个注解是@override ,不是overload,而且也是修饰的foo,因为在foo的前面而不是在bar的前边
【 在 iwannabe (I wanna be) 的大作中提到: 】
: 不仅能编译,而且能运行
: overload修饰的foo,而是bar
: 【 在 qblyy (新的昵称) 的大作中提到: 】
: : 首先,这代码不改是编译不了的
--
FROM 111.193.122.*
对,没办法override也没办法overload父类的私有方法
【 在 here080 (hero080) 的大作中提到: 】
: java的设计思路是正常情况下私有的内容外部不可见也不需要管
:
: 所以子类写了一个foo()当然就是自己的foo()
: 什么?父类有一个同名的?关我毛事。当它不存在就对了。
--
FROM 111.193.122.*
你这里foo的签名完全一样,即使生效也是重写不是重载
【 在 qlogic (戒网了) 的大作中提到: 】
: class A{
: private void foo();
: public void bar() {foo();}
: }
--
FROM 111.193.122.*