匿名内部类

匿名内部类

  • 没有类名的局部内部类(一切特征都与局部内部类相同)。
  • 必须继承一个父类或者实现一个接口。
public interface Usb{
  //服务
  void service();
}
public class Mouse implements Usb{
  @Override
  public void service(){
    System.out.println("连接电脑成功,鼠标开始工作了...");
  }
}
public class TestUsb{
  public static void main(String[] args){
    //创建接口类型的变量
    Usb usb = new Mouse();
    usb.service();

    //局部内部类
    class Fan implements Usb{
      @Override
      public void service(){
        System.out.println("连接电脑成功,风扇开始工作了。。。");
      }
    }
    
    //使用局部内部类创建对象
    Usb usb1 = new Fan();
    usb1.service();

    //使用匿名内部类优化(相当于创建了一个局部内部类)
    Usb usb2 = new Usb(){
      @Override
      public void service(){
        System.out.println("连接电脑成功,风扇开始工作了。。。");
      }
    }
  }
}
  • 定义类、实现类、创建对象的语法合并,只能创建一个该类的对象。
  • 优点:减少代码量。
  • 缺点:可读性较差。
posted @   摘星丶仙  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示