[英]Why is it super.paint(g) and not this.paint(g)?
只是一个关于 inheritance 的理论问题。
因此,假设我有一个扩展 JPanel 的 class“GamePanel”。
我知道在 class 中,如果我调用super.paint(g)
,它将调用父级 class (JPanel) 绘制方法。
但是如果我创建一个 object GamePanel,它不应该已经继承了所有 JPanels 方法吗? 那么在那种情况下,为什么this.paint(g)
不起作用? 现在的object应该可以访问那个方法吧?
如果不是,为什么this.setBackgroundColor(...)
起作用?
因为显然this.setBackgroundColor(...)
和super.setBackGroundColor(...)
一样有效。 所以这几乎就像“super”可以访问所有方法而“this”不能?
如果您在子 class 中重新定义了paint
,这很重要...您需要在paint
方法中使用一种方法来调用祖先paint
方法,否则它只能像从该方法中递归地“调用自身”一样...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.