zoukankan      html  css  js  c++  java
  • java中的匿名内部类

    匿名内部类:

      匿名内部类适合创建那种只需要一次使用的类。匿名内部类的语法有点奇怪,创建匿名内部类时会创建一个该类的实例,这个类定义立即消失,匿名内部类不能重复使用。

    匿名内部类的格式如下

    new 父类构造器(实参列表)|实现接口(){

                                                           //匿名内部类的类体部分。

                                                            }

    从上面可以看出,匿名内部类必须要继承一个类,或实现一个接口,但最多只能继承一个父类或实现一个接口。

    匿名内部类的2条规则:

    1、匿名内部类不能使抽象类,因为系统在创建匿名内部类的时候,会立即创建匿名内部类的对象。因此不允许将匿名内部类定义成抽象类。

    2、匿名内部类不能定义构造器,因为匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以定义实例初始化块,通过初始化块来完成构造器需要完成的事情。

    interface Product

    {

       public abstract double getPrice();

        public abstract String getName();

    }

    public class Test

    {

       public void test(Product p)

      {

         System.out.println("购买了一个"+p.getName()+",花掉了"+p.getPrice());

      }

      public static void main(String[] args)

       {

           Test t=new Test();

          //调用test方法时,要传入一个Product参数,此处传入其匿名实现类的实例

           t.test(new Product(){

               public double getPrice()

                   {

                           return 123.23;

                   }

              public String getName()

                  {

                        return "小白";

                  }

                   });

       }

    }

  • 相关阅读:
    mysqldump备份数据库时排除某些库
    Dataguard后台进程解析
    mysql 查看所有存储过程
    Oracle 中的 TO_DATE 和 TO_CHAR 函数
    trunc的使用
    mysql now() sysdate() curdate()区别
    ORA-10456:cannot open standby database;media recovery session may be in process
    ORACLE 修改日志大小及增加日志成员
    Oracle 11gR2用gpnp profile存放ASM的spfile路径
    C语言malloc()函数:动态分配内存空间
  • 原文地址:https://www.cnblogs.com/zailushang117/p/3558288.html
Copyright © 2011-2022 走看看