2006-08-11

方法的困惑,如何重载怎么覆盖

有如下代码:
class A
{
static B bClass = new B();

static String setString(String str)
{
return str;
}
public static void main(String[] args)
{
System.out.println(setString("TEST......"));

System.out.println(bClass.printStr("B TEST......"));
}
}

class B extends A
{
static A classA = new A();

String printStr(String s)
{
return s;
}
}

控制台会这样输出:
TEST......
B TEST......

这是另外一段代码:
public class MainFrame
{
SetLabelTest newLabelText = new SetLabelTest();

public void buildMainFrame()
{
//实现一个JFrame,并且加入一个JLable
}
public void setLabelText(String text)
{
//使用JLabel的setText()方法令JLabel显示字符串
}
}

public class SetLabelTest extends MainFrame
{
MainFrame theFrame = new MainFrame();

public void labelText()
{
theFrame.setLabelText("New Text......");
}
}

当在MainFrame这个类中实现newLabelText.labelText()的时候,程序报告如下错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

这是怎么回事呢?
为什么setText()方法不能被重载?

相关连接:方法的困惑,问题的核心

No comments: