匿名内部类----java

匿名内部类----java

匿名内部类就是内部类的简化写法,是一种特殊的局部内部类。

前提:存在一个类或者接口,这里的类可以是具体的类也可以是抽象类。

本质是:一个继承了该类或者实现该接口的子类匿名对象。

适合那种只需要创建一次对象的类。

 

Comparable:内部比较器 public classStudent implements Comparable{}内部比较器只能有一个,一般采用最经常使用的比较规则。

Comparator:外部比较器 可指定多个 不需要Student实现该接口,而是定义专门的类、

 

总结:

1、匿名内部类可以实现一个接口,也可以继承一个类(可以是抽象类)。

2、匿名内部类只能实现一个接口,而不是多个。

3、必须实现所有方法,匿名内部类不能是抽象类。

4、匿名内部类不可能有构造方法,因为类是匿名的。

5、匿名内部类没有访问控制符。

6、如果想实现构造方法的一些初始化功能,可可以通过代码块实现。

7、如果要访问所在方法的局部变量,该变量需要使用final修饰。

 

内部类的作用:

1、内部类提供了更小的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。

2、内部类可以访问外部类的私有属性,内部列被当成其外部类的成员。但外部类不能访问内部类的内部属性。

3、接口只解决了多重继承的部分问题,而内部类使得多重继承的解决方案变的更加完整。

4、用匿名内部类实现回调功能,我们通俗的讲解就是说在Java中,通常就是编写一个接口,然后你来实现这个接口,然后把这个接口

的一个对象作为参数的形式传到另一个程序中,然后通过接口调用你的方法,匿名内部列就可以很好地展现量这一种回调功能。

 

内部类使用场合:

1、由于内部类提供了更好的封装性,并且可以很方便的访问外部类的属性,所以,在只为外部类提供服务的情况下可以优先考虑使用内部类。

2、使用内部类间接实现多继承:每个内部类都能独立地继承一个类或者实现某些接口,所以无论外部类是否已经继承了某个类或者实现了某些

接口,对于内部列都没有任何影响。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值