为什么java中父类中的有些方法可以在子类中直接调用,而有的方法需要用super来调用?

如:父类Geometric中有publicvoidsetcolor();publicvoidsetfilled();和publicjava.util.Datedatacr... 如:父类Geometric中有public void setcolor();public void setfilled();和
public java.util.Date datacreat()三个方法,子类中调用方法如下:
setcolor( ); setfilled(); super.datacreat()
这是为什呢?求大虾解答。
展开
 我来答
liyulong444
推荐于2018-03-29 · TA获得超过404个赞
知道小有建树答主
回答量:283
采纳率:100%
帮助的人:228万
展开全部
子类可以调用父类的任何非私有方法,而用到super时可能子类中对父类的datacreat方法进行重写用super表明调用的是父类里的方法
追问
也就是说:如果子类中没有对父类的方法进行重写的话,就可以直接调用非私有方法;而如果有重写,就要用到SUPER 来调用方法。而重写的时候方法签名又一样,这里super就是起一个区分的作用,以表明这是父类的方法。这样理解对不对?
追答
也可以这样说,因为有时候调用时有特别要求去调用父类方法,这时就用super调用,其实用的最多的是构造函数啦,别的情况也很少会用到
百度网友87cd9e79fd
2015-07-20 · TA获得超过799个赞
知道小有建树答主
回答量:630
采纳率:0%
帮助的人:619万
展开全部
在子类中定义了与父类同名的方法,而有时又需要直接使用父类的同名方法时,就需要用super来指定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
学尽天下学问
2015-07-31 · TA获得超过539个赞
知道小有建树答主
回答量:607
采纳率:36%
帮助的人:144万
展开全部
这个,只要方法的访问修饰符不是private,都可以访问的,不加super也可以的,就是加不加super是无所谓的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dengjie891127
2012-04-05
知道答主
回答量:1
采纳率:0%
帮助的人:1623
展开全部
这三个方法只有返回类型的不同,如果子类的方法和父类的方法名一样 但返回类型不一样就无法构成方法的重写,而调用父类的这个方法就需要用super
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwmoo7
2015-08-11 · TA获得超过109个赞
知道小有建树答主
回答量:218
采纳率:80%
帮助的人:49.2万
展开全部
如果子类有重写了父类的方法,但是又想使用父类的方法就必须用super 调用,直接调用不带super 的话就是使用了子类重写的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式