Что произойдет в Java, когда я использую метод суперкласса, который не был написан? - PullRequest
1 голос
/ 09 ноября 2009

Рассмотрим приведенный ниже код Java, что произойдет, если в классе JPanel не будет метода paintComponent?

...

import javax.swing.JPanel;

public class ShapesJPanel extends JPanel
{

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

Ответы [ 4 ]

9 голосов
/ 09 ноября 2009

Не скомпилируется. Если он был там во время компиляции, но не во время выполнения, он выдаст ошибку.

3 голосов
/ 09 ноября 2009
  1. Если это конкретная ситуация, о которой вы спрашиваете, она всегда есть.
  2. Если вы спрашиваете вообще, то он не будет компилироваться.
1 голос
/ 09 ноября 2009

В суперклассе всегда будет реализация.

JPanel реализует paintComponent(). Так что вам не нужно об этом беспокоиться.

0 голосов
/ 10 ноября 2009

Во время компиляции

  • Метод должен присутствовать в любом классе в иерархии суперклассов, иначе компиляция завершится неудачей

  • Метод класса из этой иерархии (начиная снизу) будет вызываться

Во время выполнения

  • Если метод не найден, он выдаст ошибку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...