在重载的时候错误的键入方法名重载允许程序员用新的代码去覆盖方法的实现
重载是一个便利的特性,很多面对对象的程序员都在大量的使用它。如果你使用AWT1.1的时间处理模型,你通常会覆盖listener方法去实现定制的功能。
一个在重载方法的时候很容易犯的错误就是错误的键入要重载的方法名。如果你错误的输入了方法名,你就不是在重载这个方法了。相反的,你是在重新定义一个方法,只不过这个方法的参数和返回类型和你要重载的方法相同罢了。
public class MyWindowListener extends WindowAdapter {
// This should be WindowClosed
public void WindowClose(WindowEvent e) {
// Exit when user closes window
System.exit(0);
}
}
这个方法不会通过编译,很容易就能捕捉找它。在过去我曾经注意过一个方法,并且相信它是被调用的,花了很多时间去找这个错误。这个错误的表现就是你的方法不会被调用,你以为你的方法已经被跳过了。一种可行的解决方法就是增加一条打印输出语句。在日志文件中记录下信息。或者是使用跟踪调试程序(例如VJ++或者是Borland JBuilder)来一行一行的调试。如果你的方法还不能被调用,那很可能就是你的方法名键入错误了。
重载是一个便利的特性,很多面对对象的程序员都在大量的使用它。如果你使用AWT1.1的时间处理模型,你通常会覆盖listener方法去实现定制的功能。
一个在重载方法的时候很容易犯的错误就是错误的键入要重载的方法名。如果你错误的输入了方法名,你就不是在重载这个方法了。相反的,你是在重新定义一个方法,只不过这个方法的参数和返回类型和你要重载的方法相同罢了。
public class MyWindowListener extends WindowAdapter {
// This should be WindowClosed
public void WindowClose(WindowEvent e) {
// Exit when user closes window
System.exit(0);
}
}
这个方法不会通过编译,很容易就能捕捉找它。在过去我曾经注意过一个方法,并且相信它是被调用的,花了很多时间去找这个错误。这个错误的表现就是你的方法不会被调用,你以为你的方法已经被跳过了。一种可行的解决方法就是增加一条打印输出语句。在日志文件中记录下信息。或者是使用跟踪调试程序(例如VJ++或者是Borland JBuilder)来一行一行的调试。如果你的方法还不能被调用,那很可能就是你的方法名键入错误了。