对象创建期间的java覆盖

时间:2009-10-01 14:22:00

标签: java override instantiation

在下面的java代码中创建了一个JButton,但同时它的一个方法被覆盖。 问题:在创建对象时是否有以这种方式覆盖的名称?

代码:

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

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

jbutton的标签现在是“ok,delete”

1 个答案:

答案 0 :(得分:20)

这是一个匿名课程。来自Java in a Nutshell

  

匿名类是本地类   没有名字。一个匿名类是   在单个中定义和实例化   使用新的简洁表达   运营商。当地的一个班级   definition是块中的语句   Java代码,一个匿名类   定义是一个表达式,其中   意味着它可以作为一部分包含在内   更大的表达,例如a   方法调用。当地的一个班级   仅使用一次,考虑使用   匿名类语法,放置   该课程的定义和使用   完全相同的地方。

这是提供基类特化而不通过class表达式明确定义新类的常用方法。