package morepackage;
public class Subclass extends Superclass {
public static void main ( String args[] )
{
String name = super.text;//compilation error in this line
String name1 = text;//no compilation error in this line
}
}
超类的代码是:
public class Superclass
{
static String text = "flowers";
}
任何人都可以告诉我为什么行String name = super.text显示错误
而行String name1 = text;没有显示错误?
答案 0 :(得分:3)
您在super
上下文中引用了与SubClass
实例相关的static
,该实例无法了解实例 - 即您的static void main
方法属于class SubClass
,而不是任何实例。
由于text
中static
为SuperClass
,您可以参考SuperClass.text
,前提是您拥有正确的访问权限(此处,在同一个包中)。
答案 1 :(得分:3)
因为您已在超类中将其声明为静态,所以它是一个类变量,应该作为Superclass.text
进行访问。