全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java中的匿名内部类总结

 java中的匿名内部类总结

匿名内部类也就是没有名字的内部类

正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

实例1:不使用匿名内部类来实现抽象方法

abstract class Person { 
  public abstract void eat(); 
} 
  
class Child extends Person { 
  public void eat() { 
    System.out.println("eat something"); 
  } 
} 
  
public class Demo { 
  public static void main(String[] args) { 
    Person p = new Child(); 
    p.eat(); 
  } 
} 

运行结果:eat something

可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用

但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦?

这个时候就引入了匿名内部类

实例2:匿名内部类的基本实现

 public abstract void eat(); 
} 
  
public class Demo { 
  public static void main(String[] args) { 
    Person p = new Person() { 
      public void eat() { 
        System.out.println("eat something"); 
      } 
    }; 
    p.eat(); 
  } 
}

运行结果:eat something

可以看到,我们直接将抽象类Person中的方法在大括号中实现了

这样便可以省略一个类的书写

并且,匿名内部类还能用于接口上

 实例3:在接口上使用匿名内部类

interface Person { 
  public void eat(); 
} 
  
public class Demo { 
  public static void main(String[] args) { 
    Person p = new Person() { 
      public void eat() { 
        System.out.println("eat something"); 
      } 
    }; 
    p.eat(); 
  } 
}

运行结果:eat something

由上面的例子可以看出,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现

最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口

 实例4:Thread类的匿名内部类实现

public class Demo { 
  public static void main(String[] args) { 
    Thread t = new Thread() { 
      public void run() { 
        for (int i = 1; i <= 5; i++) { 
          System.out.print(i + " "); 
        } 
      } 
    }; 
    t.start(); 
  } 
}

运行结果:1 2 3 4 5

 实例5:Runnable接口的匿名内部类实现

public class Demo { 
  public static void main(String[] args) { 
    Runnable r = new Runnable() { 
      public void run() { 
        for (int i = 1; i <= 5; i++) { 
          System.out.print(i + " "); 
        } 
      } 
    }; 
    Thread t = new Thread(r); 
    t.start(); 
  } 
}

运行结果:1 2 3 4 5

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 匿名  # 内部类  # 内部类的详解  # 详解内部类  # Java匿名类  # 匿名内部类实例分析  # java匿名内部类实例代码详解  # Java匿名内部类原理与用法详解  # Java局部内部类和匿名内部类定义与用法实例分析  # Java匿名对象与匿名内部类  # java 中匿名内部类的实例详解  # java中匿名内部类详解  # Java 匿名内部类详解及实例代码  # java 内部类(匿名类  # 匿名对象  # 静态内部类)详解及实例  # JAVA匿名内部类语法分析及实例详解  # 将其  # 可以看到  # 来实现  # 多线程  # 实现了  # 有个  # 还能  # 如有  # 希望能  # 便可  # 这个时候  # 可以使用  # 可以看出  # 谢谢大家  # 岂不是  # 最常用  # 很麻烦  # 其子  # 前提条件  # 类中 


相关文章: 网站制作多少钱一个,建一个论坛网站大约需要多少钱?  *服务器网站为何频现安全漏洞?  如何解决VPS建站LNMP环境配置常见问题?  如何在服务器上三步完成建站并提升流量?  建站之星如何一键生成手机站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何在Golang中使用replace替换模块_指定本地或远程路径  如何快速上传建站程序避免常见错误?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  表情包在线制作网站免费,表情包怎么弄?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何选择服务器才能高效搭建专属网站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  小程序网站制作需要准备什么资料,如何制作小程序?  如何选择高效稳定的ISP建站解决方案?  如何获取上海专业网站定制建站电话?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  制作网站的模板软件,网站怎么建设?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  制作网站的基本流程,设计网站的软件是什么?  全景视频制作网站有哪些,全景图怎么做成网页?  深圳网站制作培训,深圳哪些招聘网站比较好?  已有域名如何免费搭建网站?  如何在自有机房高效搭建专业网站?  高端网站建设与定制开发一站式解决方案 中企动力  江苏网站制作公司有哪些,江苏书法考级官方网站?  如何将凡科建站内容保存为本地文件?  如何通过免费商城建站系统源码自定义网站主题与功能?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  个人网站制作流程图片大全,个人网站如何注销?  网站制作需要会哪些技术,建立一个网站要花费多少?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  ,想在网上投简历,哪几个网站比较好?  如何通过VPS建站实现广告与增值服务盈利?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  建站之星如何快速生成多端适配网站?  如何通过多用户协作模板快速搭建高效企业网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  javascript基本数据类型及类型检测常用方法小结  建站之星如何快速解决建站难题?  如何快速完成中国万网建站详细流程?  免费网站制作appp,免费制作app哪个平台好?  魔方云NAT建站如何实现端口转发?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何通过虚拟主机快速完成网站搭建?  个人摄影网站制作流程,摄影爱好者都去什么网站?  建站之星免费模板:自助建站系统与智能响应式一键生成  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。