码迷,mamicode.com
首页 > 其他好文 > 详细

匿名内部类

时间:2018-09-26 22:10:06      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:http   图片   inf   抽象   public   无法   包含   --   定义   

一.匿名内部类适合创建那种只需要一次使用的类(命令模式)

     (1)定义匿名内部类的格式:

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

        {   

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

         }

    技术分享图片

      (2)匿名内部类的规则

           1.匿名内部类不能是抽象类,因为系统在创建匿名内部类时,会立即创建匿名内部类的对象.

            2.匿名内部类不能定义构造器.由于匿名内部类没有类名,所以无法定义构造器.但匿名内部类可以定义初始化块

       温馨小提示:匿名内部类必须继承一个父类或实现一个接口,但最多只能继承一个父类或接口

二.匿名内部类的两种形式

       方式一:隐式

技术分享图片

技术分享图片

温馨小提示:(1)当通过实现接口来创建匿名内部类时,匿名内部类只有隐式的无参数构造器,故new后面不能传入参数值(接口不包含构造器)1

                       (2)new Device("电子显示器")   -->public void test(Device d)  -->Device d=new Device ();


 

方式二:显示

技术分享图片

   温馨小提示:如果局部变量被匿名内部类访问,那么该局部变量相当于使用了final修饰,系统会默认加上final修饰符,此时若再修改age值,报错

         interface A

        { 

             void test();

            }

public class Atest{

       public static void main(String[] args) {

            int   age=19;

             A a=new A(){

                public   void test(){

                       System.Out.Println(age);

    }

                     };

}

}     

匿名内部类

标签:http   图片   inf   抽象   public   无法   包含   --   定义   

原文地址:https://www.cnblogs.com/zjm1999/p/9709959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!