对象创建期间的 java 覆盖

2022-09-02 10:13:59

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

代码:

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

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

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


答案 1

这是一个匿名的类。从Java简而言之

匿名类是没有名称的本地类。匿名类是使用 new 运算符在单个简洁表达式中定义和实例化的。虽然本地类定义是 Java 代码块中的语句,但匿名类定义是表达式,这意味着它可以作为较大表达式(如方法调用)的一部分包含在内。当本地类仅使用一次时,请考虑使用匿名类语法,它将类的定义和使用放在完全相同的位置。

这是提供基类的特化的常用方法,无需通过表达式显式定义新类。class


答案 2

推荐