java继承类怎样使用父类的protected方法和属性

由于protected的方法和属性是可以继承的,那么怎样区分调用的是父类的protected方法和属性,还是自己已经继承下来了的protected方法和属性(也可以说是自... 由于protected的方法和属性是可以继承的,那么怎样区分调用的是父类的protected方法和属性,还是自己已经继承下来了的protected方法和属性(也可以说是自己的方法属性),在http://www.iliyu.com/news/319129.html中,说的是访问父类的方法属性,那如果要访问继承下来的方法属性,该怎样操作呢? 展开
 我来答
皎月的摆渡控件
2013-02-18 · 超过13用户采纳过TA的回答
知道答主
回答量:125
采纳率:100%
帮助的人:45.1万
展开全部
只要名字和父类的不一样的可以直接访问,默认是父类的属性和方法;如果名字一样的话,加上super是父类的,加上this是子类的。
百度网友381f7cdfd
2013-02-18 · TA获得超过297个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:188万
展开全部
怕混淆,可以显式使用this和super来确认!

但是,在java编程规范里,一般只会在你重写的方法里调用父类对应的方法.
比如在TestSamePackageSubClass里的getTestInt(), 你可以调用super.getTestInt()
而TestSamePackageSubClass的其他方法里,则直接调用getTestInt() (自己有就是自己的,否则是父类的), 除非你要显式调用父类super.getTestInt(). 可以这么用,但违背了java 继承的本意
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llei32wang
2013-02-18 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1408万
展开全部
如果不存在同名的属性可以直接访问就行了,编译时或自动添加this 和super。

当然也可以用this. 和super区分父类或子类
this.表示子类的属性或方法 而super.表示父类的属性或方法。
追问
那像代码中的那样,没有this和super,默认就是访问的父类的方法和属性?
追答
如果子类和父类不存在同名的属性或方法那就是谁存在就访问谁的,如果子类和父类存在同名的,则默认访问子类的方法或属性.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
http_p
推荐于2017-12-15 · TA获得超过1095个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:586万
展开全部
我觉得是你吧例子要表达的东西理解错了

例子中test()中是new了一个Base, 然后调用Base中的protected方法, 它要表达的意思是, 同一包中其它类是可以使用对象的protected方法的

而test2()没有经过new, 而直接使用Base的protected方法, 要表达的意思子类可以使用父类的protected方法

如果你这个子类和Base类不是同一包中, 那么test()会报错, 而test2()仍然正确

两个test表达的是protected方法在什么情况下能被看到
1. 同一包中的其它类new出的对象可以看到

2. 子类中直接看到

而你问的是怎么调用子类的protected方法, 这个和java的多态性有关, 而不是和protected性质有关
追问
那么test()中调用的getTestInt()是基类的还是自己继承下来的呢?
追答
一般来说, 如果子类没有复写, 那么认为是父类的

当然你可以认为是继承下来的, 但终究是父类的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
优源小程序
2013-02-18 · 来吧,一起专注小程序开发
优源小程序
采纳数:34 获赞数:45

向TA提问 私信TA
展开全部
当然也可以用this. 和super区分父类或子类
this.表示子类的属性或方法 而super.表示父类的属性或方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式