关于super关键字的问题,代码如下,麻烦大佬帮忙看看!

class MyStack extends java.util.ArrayList {
public boolean isEmpty() {
return isEmpty();
}
public String toString() {
return "stack: " + toString();
}
}
在java.util.ArrayList类中,也有isEmpty() 和toString()方法,为什么两个方法前不加super也能输出正确结果。这个时候,方法覆盖怎么不起作用了?

明月笑刀无情
浏览 284回答 3
3回答

慕后森

return ISEmpty();调用的是自己当前的方法,其实是无限循环。你说的方法覆盖怎么不起作用了?是可以的啊。

眼眸繁星

java.util.ArrayList类中isEmpty() 方法/*** Returns <tt>true</tt> if this list contains no elements.** @return <tt>true</tt> if this list contains no elements*/public boolean isEmpty() {return size == 0;}方法本身返回的就是一个布尔值啊???而且你的类中掉的方法不是java.util.ArrayList类中isEmpty() 方法吧。。ctrl+方法名肯定是你当前的方法。。

LEATH

isEmpty()还是调用java.util.ArrayList类,toString()才有改到,所有的类都是Object 的子类,都有toString()方法
打开App,查看更多内容
随时随地看视频慕课网APP