Sea*_*oyd 13
以下是JLS中关于super关键字的部分:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.11.2
表单
super.Identifier引用当前对象的名为Identifier的字段,但将当前对象视为当前类的超类的实例.该表单
T.super.Identifier引用与T对应的词法封闭实例的名为Identifier的字段,但该实例被视为T的超类的实例.
在这两种情况下,很明显需要一个实例对象.
此外,静态上下文与实例上下文有些不同,因为类不能覆盖静态方法,只能隐藏它们.
super出于与静态上下文无法使用相同的原因,您无法this在静态上下文中使用.在这两种情况下,该词指的是一个实例.
在静态上下文中,您始终可以显式使用超类的名称:
class Sub extends Base {
static void func() {
Base.func();
. . .
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18478 次 |
| 最近记录: |