2 yk home yk_home 于 2016.04.26 19:06 提问

关于父类中private的数据

父类中private的成员方法,在子类中无法重写要怎样理解哦~

4个回答

qq_28881863
qq_28881863   2016.04.26 19:52

访问权限为private 的方法是无法被重写的 举个列子

你找你爸要生活费

父亲持有生活费这个变量
关系是私有
子类不能重写,因为父亲不愿意
你要是直接调用父亲的钱还了得
所以父亲提供一个公开的方法,比如get,set
让你去操作
你想操作父亲的钱,必须用父亲提供的方法

qq_25827845
qq_25827845 回复yk_home: 你指的俩方法,毫无关系,更谈不上区别。子类中写的方法只是一个普通的成员方法而已。
一年多之前 回复
yk_home
yk_home 在子类中可以重新写一个与父类中完相同的方法(改成public) ,这个方法与父类之中那个private的方法区别在哪哦,是不是就是讲这是两个相互独立的方法哦?
一年多之前 回复
sl_18500
sl_18500   2016.04.27 15:18

private是私有方法,要重写就得是public方法

zjysource
zjysource   2016.04.28 14:33

"在子类中可以重新写一个与父类中完相同的方法(改成public)"
此话有误。
在子类里,声明一个与父类private方法的签名相同的方法,和父类的private方法没有任何关系。
设想一下,如果你根本没有父类的代码,你怎么知道你在子类的声明的这个方法与父类的某private方法具有相同的签名。
既然你无法知道这一点,那么你这么做就和父类的private方法根本没有任何关系——它在不在那里,都影响不了子类。这就是为什么说父类的private子类不可见。

zjysource
zjysource 补充一下:“你怎么知道你在子类的声明的这个方法与父类的某private方法具有相同的签名?”既然你不知道,就谈不上重写不重写,所以“可以重写父类的private方法”这句话是错误的。
一年多之前 回复
dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.04.29 16:44

protected 可以在子类修改

Csdn user default icon
上传中...
上传图片
插入图片