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;
行 未显示错误 ?
答案 0 :(得分:1)
方法main
为static
,super
方法中没有static
这样的内容。
答案 1 :(得分:1)
main
是一种静态方法,因此无法访问对this
和super
的引用。
无论如何,即使你确实获得了Subclass
的实例(例如通过new
),通过类实例访问static members类是不好的做法,因此,访问Superclass.text
是引用" Flowers"。
答案 2 :(得分:0)
super
是指实际对象的父类。在主要方法中,没有像"实际对象"因为它是静态范围。
超类的属性text
被定义为静态,因此您可以通过静态主方法中的类名访问它。
请勿将类与对象(或实例)混淆。