您的位置:首页 > 其它

关于匿名内部类的问题

2016-12-06 20:28 183 查看
匿名内部类是什么?如何访问在其外面定义的变量?

 

使用的形参为何要为final?

为了避免引用值发生改变,例如被外部类的方法修改等,而导致内部类得到的值不一致,于是用final来让该引用不可改变。
故如果定义了一个匿名内部类,并且希望它使用一个其外部定义的参数,那么编译器会要求该参数引用是final的。

 

匿名内部类如何初始化?

一般都是利用构造器来完成某个实例的初始化工作的,但是匿名内部类是没有构造器的。

使用构造代码块!利用构造代码块能够达到为匿名内部类创建一个构造器的效果

 

注意:

     1、使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。
     2、匿名内部类中是不能定义构造函数的。
     3、匿名内部类中不能存在任何的静态成员变量和静态方法。
     4、匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
     5、匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: