返回信息流如果父类某一成员变量为private类型
那么其子类虽然继承了该变量,但是不能访问它
我的问题是:这样的变量对子类来说是不是毫无用处了?
这是一条镜像帖。来源:北邮人论坛 / java / #19349同步于 2011/7/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请教成员变量的访问权限的问题
Sugar2010
2011/7/12镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
当然不是啊,比如一个Animal类,有private的name,breed,要是一个Dog类继承Animal,它显然也需要name,breed呀,但是你在Dog类中无法访问name,breed,因为它们是private型的。但是,一般基类里会提供你修改的权限,比如设置一个方法setName(),你调用这个方法,就可以改变Dog的名字了。
c++里面可以用protect,不知道java里面有没有这个关键字
并且c++和java都可以用一种通用的方法
父类写两个函数 一个是 getName(),一个是setName()
这样子类继承时候 如果想读父类里私有变量的值就调getName,想写就调setName
default和protected反了
【 在 neo861002 (哈欠神|ReMinD) 的大作中提到: 】
: 4种种修饰符 从开放性从高到低 public -》(nothing) -> protected -> private . lz google下~
子类是否继承了父类的私有变量?子类调用了父类的方法对私有变量进行修改,修改的私有变量是属于父类还是子类的?这些问题在网上各种说法啊。。
求ox大牛解答下
子类继承父类的所有变量和方法,包括私有变量,但是子类不能访问父类的私有变量,只能通过父类的set/get方法修改。
至于你说修改的私有变量是属于父类还是子类,我听不太懂。修改的是变量的值,是类的对象的值。如果该私有变量是static型,改了父类的也就相当于改了子类的。
【 在 lookstar 的大作中提到: 】
: 子类是否继承了父类的私有变量?子类调用了父类的方法对私有变量进行修改,修改的私有变量是属于父类还是子类的?这些问题在网上各种说法啊。。
: 求ox大牛解答下
: --
: ...................