tags:

views:

150

answers:

1

in the following java code a JButton is created but at the same time one of it's methods in overridden. Qestion: is there a name for overriding in this way, while creating the object?

the code: JButton myButton;

    myButton = new JButton ("ok"){

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

the jbutton's label is now "ok, delete"

+8  A: 

That's an anonymous class. From Java in a Nutshell

An anonymous class is a local class without a name. An anonymous class is defined and instantiated in a single succinct expression using the new operator. While a local class definition is a statement in a block of Java code, an anonymous class definition is an expression, which means that it can be included as part of a larger expression, such as a method call. When a local class is used only once, consider using anonymous class syntax, which places the definition and use of the class in exactly the same place.

It's a common means of providing a specialisation of a base class without explicitly defining a new class via the class expression.

Brian Agnew