当我使用尚未编写的超类方法时,Java会发生什么?

时间:2009-11-09 19:13:31

标签: java swing inheritance

考虑下面的Java代码,如果JPanel类中没有paintComponent方法会发生什么?

...

import javax.swing.JPanel;

public class ShapesJPanel extends JPanel
{

     public void paintComponent( Graphics g )
     {
       super.paintComponent( g );
       //more codes here  
     }
}

4 个答案:

答案 0 :(得分:9)

它不会编译。如果它在编译时存在但不在运行时,那么它将抛出一个错误。

答案 1 :(得分:3)

  1. 如果那是你要问的具体情况,那么它总是在那里。
  2. 如果你一般会问,那就不会编译。

答案 2 :(得分:1)

超类中总会有一个实现。

JPanel实施paintComponent()。所以,你不必担心它。

答案 3 :(得分:0)

在编译时

  • 该方法应出现在超类层次结构中的任何类中,否则编译将失败

  • 来自该层次结构的类的方法(从底部开始)将被调用

在运行时

  • 如果找不到方法,则会抛出错误