这是子类代码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Scanner;
public class deleteAfter extends BeginAgain{
public static void main(String[] args){
super.printed()
//I want to inherit the "printed()" method from my superclass, but
//when I type "super.printed()" in my subclass's main method I get an error message that says
//"Cannot use super in a static context"
//what am I doing wrong?
//Is it a compiler error or am I using "super" the wrong way?
};
}
这里是一个超级类(BeginAgain.java)的链接,我把它放在一个JSfiddle中:http://jsfiddle.net/72cYy/70/
可能导致问题的超类可能出现问题。
答案 0 :(得分:3)
您无法通过静态方法调用非静态方法。
您可以先通过创建实例来调用它。
public static void main(String[] args){
deleteAfter instance = new deleteAfter();
instance.printed();
}
你不需要超级关键字。
如果要在子类中扩展printed
方法的实现,则只需要super关键字:
public void printed() {
super.printed();
// some additional logic
}
答案 1 :(得分:0)
您的问题正是编译器告诉您的问题。静态方法与特定的类实例无关,因此您不能在那里使用超级关键字