问答详情
源自:4-10 学生选课---应用泛型管理课程 Ⅱ

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

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

但是

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

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

提问者:温酒煮胖豆 2017-03-10 19:47

个回答

  • 斜阳下愿追寻
    2018-03-01 11:14:24

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

  • qq_为妳战天下_0
    2017-07-22 20:38:58

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

  • say意
    2017-04-09 16:11:47

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

  • gokangu
    2017-03-10 21:56:19

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

  • cc___
    2017-03-10 21:28:23

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

  • 温酒煮胖豆
    2017-03-10 21:22:10

    报错代码

    http://img.mukewang.com/58c2a84f000131cd08360546.jpg

    http://img.mukewang.com/58c2a8500001267508310393.jpg

    http://img.mukewang.com/58c2a8500001098408250511.jpg


  • cc___
    2017-03-10 21:11:09

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

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