为了账号安全,请及时绑定邮箱和手机立即绑定

子类为什么不可以访问父类的private属性

一个类可以通过getter或者setter方法让其他类来访问自己的private属性

但是

为什么子类继承了父类以后就不能用getter或者setter 来访问他的private属性的呢?

如果子类想要想要访问父类的private属性该怎么办?

正在回答

7 回答

你可以百度一下各修饰词的属性,就会比较容易理解了(public,private,protected)

0 回复 有任何疑惑可以回复我~

这个问题,类似于问别人1+1为什么等于2,没意义

0 回复 有任何疑惑可以回复我~

父类有些内容是不能继承的,看修饰符就可以确定哪些可以继承。private、static、final修饰的内容是不能继承的。如果想要访问父类的private域,需要定义getter方法,把域的值作为方法的返回值,其他类调用这个方法就能得到private域的值。通俗地说,对于其他类而言,getter方法是读的权限,而setter方法是写的权限。

0 回复 有任何疑惑可以回复我~

首先,你要明白子类继承父类的protected和public的属性及方法,换句话说,你的子类里并没有父类当中的private属性,虽然子类继承了父类的方法,但是由于没有继承来private的属性,因此,方法也是不可用的,也就是说,你的子类实例化后也没有id和name,那你怎么get和set。

0 回复 有任何疑惑可以回复我~
#1

温酒煮胖豆 提问者

就是说父类中调用了private属性的的方法,在子类里面也不能用,只能用父类的其他的public类型方法吗?
2017-03-10 回复 有任何疑惑可以回复我~
#2

gokangu 回复 温酒煮胖豆 提问者

不是的,子类调用,只能更改子类的实例对象的属性,总之,记住父类的私有属性你无法访问,如果你用父类实例化一个子类对象,子类调用父类public方法是可以的,更改的也只是子类的实例化对象。
2017-03-15 回复 有任何疑惑可以回复我~

调用父类的set get 你的ccr对象是子类的对象吗

0 回复 有任何疑惑可以回复我~
#1

温酒煮胖豆 提问者

crr是子类对象。 我是这么想的 子类继承了父类的get 和 set 方法,这样要是我定义了子类的对象,就能调用父类的方法,这样就能给父类的对象赋值 但是报错不知道问题出在哪里
2017-03-10 回复 有任何疑惑可以回复我~
#2

cc___ 回复 温酒煮胖豆 提问者

你继承了你爸爸的公司,你把自己的秘密还是只是他自己知道。 必学通过他来获取。
2017-03-10 回复 有任何疑惑可以回复我~

报错代码

http://img1.sycdn.imooc.com//58c2a84f000131cd08360546.jpg

http://img1.sycdn.imooc.com//58c2a8500001267508310393.jpg

http://img1.sycdn.imooc.com//58c2a8500001098408250511.jpg


0 回复 有任何疑惑可以回复我~

首先private属性继承不下来,因为子类看不见父类中的private属性。

要想在子类中访问父类的private属性,可以调用父类的get set方法来访问。

0 回复 有任何疑惑可以回复我~
#1

温酒煮胖豆 提问者

我试过用get和set方法,但是会报错,是不是用的方式不对 用定义子类的对象,然后用setter给对应父类的private属性进行赋值
2017-03-10 回复 有任何疑惑可以回复我~
#2

cc___ 回复 温酒煮胖豆 提问者

定义个父类的对象 在调用set get 方法就OK了
2017-03-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

子类为什么不可以访问父类的private属性

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信