Java匿名内部类-学习记录

一、简介:

匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类。其语法形式如下:

new <类或接口>() {
    // 类的主体
};

这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。使用匿名类可使代码更加简洁、紧凑,模块化程度更高。

匿名类有两种实现方式:

  • 继承一个类,重写其方法。
  • 实现一个接口(可以是多个),实现其方法。

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

代码说明:

public class Out {
    void show() {
        System.out.println("调用 Out 类的 show() 方法");
    }
}
public class TestAnonymousInterClass {
    // 在这个方法中构造一个匿名内部类
    private void show() {
        Out anonyInter = new Out() {
            // 获取匿名内部类的实例
            void show() {
                System.out.println("调用匿名类中的 show() 方法");
            }
        };
        anonyInter.show();
    }
    public static void main(String[] args) {
        TestAnonymousInterClass test = new TestAnonymousInterClass();
        test.show();
    }
}

程序的输出结果如下:

调用匿名类中的 show() 方法

从输出结果可以看出,匿名内部类有自己的实现。


二、特点:

1、匿名类和局部内部类一样,可以访问外部类的所有成员。

2、匿名类中允许使用非静态代码块进行成员初始化操作。

3、匿名类的非静态代码块会在父类的构造方法之后被执行。

三、深入:

参考:http://c.biancheng.net/view/1031.html

https://blog.csdn.net/chengqiuming/article/details/91352913

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值