匿名类

作者: 朱兰Juran | 来源:发表于2022-04-20 07:46 被阅读0次

匿名类是一种即时继承现有类的方法。

例如,下面有一个类 Computer:

class Computer {

  public void start() {

    System.out.println("Starting");

  }

}

创建 Computer 对象时,我们可以即时更改 start 方法。

public static void main(String[] args) {

  Computer c = new Computer() {

    @Override public void start() {

      System.out.println("Wooooo");

    }

  };

  c.start();

}

// 输出 "Wooooo";

在构造函数调用之后,我们使用花括号,并且重写了 start 方法的实现。

提示:@Override注解用于使代码更容易理解,因为当方法被重写时,它更加明显。


修改只适用于当前对象,而不适用于类本身。

所以,如果我们创建这个类的另一个对象,那么 start 方法的实现就是在类中定义的那个。

class Computer {

  public void start() {

    System.out.println("Starting");

  }

public static void main(String[] args) {

  Computer c1 = new Computer() {

    @Override public void start() {

      System.out.println("Wooooo");

    }

  };

  Computer c2 = new Computer();

  c2.start();

  }

//输出 "Starting"

相关文章

  • 匿名类

    匿名类: 匿名类,就是没有名称的类,其名称由Java编译器给出,一般是形如:外部类名称+$+匿名类顺序,没有名称也...

  • 匿名类

    一.匿名类 /* 抽象类的匿名子类 */public class PersonTest { } class Wor...

  • 匿名类

    匿名类是一种即时继承现有类的方法。 例如,下面有一个类 Computer: class Computer { p...

  • java - 学习笔记

    日期 匿名类 lambda stringBuffer stringBuilder 定时 日期 匿名类 lambda...

  • 每日一点(1)

    匿名类 内部类 匿名内部类 匿名类(可以是接口 抽象类 普通类):1:无需创建对象2:直接重写方法 内部类:若一...

  • lambda 和 匿名内部类的区别 this

    this关键字 匿名类匿名类的this关键字指向匿名类 lambda表达式lambda表达式的this关键字指向包...

  • 2021-12-23 Spring中的ObjectFactory

    查看ObjectFactory的层次关系,发现有好几个匿名类: 这种匿名类也是子类(实现类)。

  • 匿名类,匿名内部类

    首先我们来看一下内部类的定义: 在一个类中定义另一个类,这样定义的类称为内部类。【包含内部类的类可以称为内部类的外...

  • 第十三章:匿名类

    PHP 7 开始支持匿名类。 匿名类很有用,可以创建一次性的简单对象。 可以传递参数到匿名类的构造器,也可以扩展(...

  • 7.10 匿名类

    匿名类和普通类一样,只是没有名字,它可以继承、实现接口、使用trait,以及拥有自己的成员属性。 如果外部类中的方...

网友评论

    本文标题:匿名类

    本文链接:https://www.haomeiwen.com/subject/cqwmertx.html