zoukankan      html  css  js  c++  java
  • Java中匿名类的两种实现方式

    使用匿名内部类课使代码更加简洁、紧凑,模块化程度更高。内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。下面通过代码来说明:
    1. publicclass TestAnonymousInterClass{     
    2.     publicstatic main(String args[]){     
    3.         TestAnonymousInterClass test= TestAnonymousInterClass();     
    4.         test.show();     
    5.     //在这个方法中构造了一个匿名内部类   
    6.     private show(){     
    7.         Out anonyInter= Out(){// 获取匿名内部类实例   
    8.              show(){//重写父类的方法   
    9.                 System.out.println("this is Anonymous InterClass showing."
    10.         anonyInter.show();// 调用其方法   
    11. // 这是一个已经存在的类,匿名内部类通过重写其方法,将会获得另外的实现   
    12. class
    13.      show(){     
    14.         System.out.println("this is Out showing."
    程序运行的输出结果为:
    this is Anonymous InterClass showing.
       所以在这里看出,匿名内部类有了自己的实现。其实很简单,使用匿名内部类是因为我这地方需要有点什么特殊的实现,所以我就在这地方把具体实现也给了出来了。然后我就在这地方获取它的实例,调用它的方法。
       接口的方式,只要把父类换成接口就行了,没必要给出代码了。
       使用匿名内部类时我们不要忘了我们的目的,我们只是在这地方想对某个类有特殊的实现。而不要想得太多,在匿名内部编写其它的方法。在匿名内部类中编写的自己的方法是不可见的。此种做法是毫无意义的,当然一般也不会这么做。在这里只是告诉初学者对于匿名内部类不要想的太多,而要这么想:匿名内部类就是重写父类或接口的方法。
     匿名内部类是没有名字的,所以我们没办法获得其类型,而只能把它当作超类或接口类型来使用。
    当然,我这篇文章不是很有深度。欢迎发表意见!
     
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
  • 原文地址:https://www.cnblogs.com/wanglao/p/11162724.html
Copyright © 2011-2022 走看看