子类不从Superclass继承方法

时间:2014-08-30 22:07:26

标签: java

这是子类代码:

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/

可能导致问题的超类可能出现问题。

2 个答案:

答案 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)

您的问题正是编译器告诉您的问题。静态方法与特定的类实例无关,因此您不能在那里使用超级关键字