无法从子类中通过`super`访问静态字段?

时间:2014-12-11 13:10:22

标签: java eclipse syntax-error super

package morepackage;

public class Subclass extends Superclass {
  public static void main ( String args[] )
  {
    String name = super.text;//error in this line
    String name1 = Superclass.text;//no error in this line
  }}

超类的代码是:

public class Superclass {
  static String text = "flowers";
}

任何人都可以告诉我为什么第String name = super.text 显示错误

虽然第String name1 = Superclass.text; 未显示错误

3 个答案:

答案 0 :(得分:1)

方法mainstaticsuper方法中没有static这样的内容。

答案 1 :(得分:1)

main是一种静态方法,因此无法访问对thissuper的引用。

无论如何,即使你确实获得了Subclass的实例(例如通过new),通过类实例访问static members类是不好的做法,因此,访问Superclass.text是引用" Flowers"。

的正确方法

答案 2 :(得分:0)

super是指实际对象的父。在主要方法中,没有像"实际对象"因为它是静态范围。

超类的属性text被定义为静态,因此您可以通过静态主方法中的类名访问它。

请勿将对象(或实例)混淆。