java继承类怎样使用父类的protected方法和属性
由于protected的方法和属性是可以继承的,那么怎样区分调用的是父类的protected方法和属性,还是自己已经继承下来了的protected方法和属性(也可以说是自...
由于protected的方法和属性是可以继承的,那么怎样区分调用的是父类的protected方法和属性,还是自己已经继承下来了的protected方法和属性(也可以说是自己的方法属性),在http://www.iliyu.com/news/319129.html中,说的是访问父类的方法属性,那如果要访问继承下来的方法属性,该怎样操作呢?
展开
6个回答
展开全部
怕混淆,可以显式使用this和super来确认!
但是,在java编程规范里,一般只会在你重写的方法里调用父类对应的方法.
比如在TestSamePackageSubClass里的getTestInt(), 你可以调用super.getTestInt()
而TestSamePackageSubClass的其他方法里,则直接调用getTestInt() (自己有就是自己的,否则是父类的), 除非你要显式调用父类super.getTestInt(). 可以这么用,但违背了java 继承的本意
但是,在java编程规范里,一般只会在你重写的方法里调用父类对应的方法.
比如在TestSamePackageSubClass里的getTestInt(), 你可以调用super.getTestInt()
而TestSamePackageSubClass的其他方法里,则直接调用getTestInt() (自己有就是自己的,否则是父类的), 除非你要显式调用父类super.getTestInt(). 可以这么用,但违背了java 继承的本意
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果不存在同名的属性可以直接访问就行了,编译时或自动添加this 和super。
当然也可以用this. 和super区分父类或子类
this.表示子类的属性或方法 而super.表示父类的属性或方法。
当然也可以用this. 和super区分父类或子类
this.表示子类的属性或方法 而super.表示父类的属性或方法。
追问
那像代码中的那样,没有this和super,默认就是访问的父类的方法和属性?
追答
如果子类和父类不存在同名的属性或方法那就是谁存在就访问谁的,如果子类和父类存在同名的,则默认访问子类的方法或属性.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得是你吧例子要表达的东西理解错了
例子中test()中是new了一个Base, 然后调用Base中的protected方法, 它要表达的意思是, 同一包中其它类是可以使用对象的protected方法的
而test2()没有经过new, 而直接使用Base的protected方法, 要表达的意思子类可以使用父类的protected方法
如果你这个子类和Base类不是同一包中, 那么test()会报错, 而test2()仍然正确
两个test表达的是protected方法在什么情况下能被看到
1. 同一包中的其它类new出的对象可以看到
2. 子类中直接看到
而你问的是怎么调用子类的protected方法, 这个和java的多态性有关, 而不是和protected性质有关
例子中test()中是new了一个Base, 然后调用Base中的protected方法, 它要表达的意思是, 同一包中其它类是可以使用对象的protected方法的
而test2()没有经过new, 而直接使用Base的protected方法, 要表达的意思子类可以使用父类的protected方法
如果你这个子类和Base类不是同一包中, 那么test()会报错, 而test2()仍然正确
两个test表达的是protected方法在什么情况下能被看到
1. 同一包中的其它类new出的对象可以看到
2. 子类中直接看到
而你问的是怎么调用子类的protected方法, 这个和java的多态性有关, 而不是和protected性质有关
追问
那么test()中调用的getTestInt()是基类的还是自己继承下来的呢?
追答
一般来说, 如果子类没有复写, 那么认为是父类的
当然你可以认为是继承下来的, 但终究是父类的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然也可以用this. 和super区分父类或子类
this.表示子类的属性或方法 而super.表示父类的属性或方法。
this.表示子类的属性或方法 而super.表示父类的属性或方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询