2009-10-01 3 views
12

nel seguente codice java viene creato un JButton ma allo stesso tempo viene sovrascritto uno dei suoi metodi. Qestion: esiste un nome per sovrascrivere in questo modo durante la creazione dell'oggetto?java override durante la creazione dell'oggetto

il codice: label

JButton myButton; 
    myButton = new JButton ("ok"){ 

     @Override 
     public void setText(String text) { 
      super.setText(text +", delete"); 
     } 

del JButton è ora "ok, delete"

risposta

18

Questa è una classe anonima. Da Java in a Nutshell

una classe anonima è una classe locale senza un nome. Una classe anonima è definita e istanziata in una singola espressione succinta utilizzando il nuovo operatore . Mentre una definizione locale di classe è una dichiarazione in un blocco di codice Java, un anonimo definizione della classe è un'espressione, che significa che può essere incluso come parte di un'espressione più grande, come ad esempio una chiamata metodo. Quando una classe locale è utilizzata una sola volta, prendere in considerazione l'uso della sintassi della classe anonima , che pone la definizione e l'uso della classe in esattamente nella stessa posizione.

È un metodo comune per fornire una specializzazione di una classe base senza definire esplicitamente una nuova classe tramite l'espressione class.