main方法中的编译错误

时间:2014-12-11 14:59:35

标签: java eclipse syntax-error subclass

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;没有显示错误?

2 个答案:

答案 0 :(得分:3)

您在super上下文中引用了与SubClass实例相关的static,该实例无法了解实例 - 即您的static void main方法属于class SubClass,而不是任何实例。

由于textstaticSuperClass,您可以参考SuperClass.text,前提是您拥有正确的访问权限(此处,在同一个包中)。

答案 1 :(得分:3)

因为您已在超类中将其声明为静态,所以它是一个类变量,应该作为Superclass.text进行访问。