java匿名内部类

public class Parcel7
{
    public Contents contents()//Contents cannot be resolved to a type
    {
        return new Contents()//Contents cannot be resolved to a type
        {
            private int i = 11;
            public int value()
            {
                return i;
            }
        };
    }
   
    public static void main(String[] args)
    {
        Parcel7 o = new Parcel7();
        //Contents c = o.contents();
    }

}

interface Contents{
    public int value();
}


contents()方法将返回值的生成与表示这个返回值的类的定义结合在一起!另外,这个类是匿名的,它没有名字。更糟的是,看起来似乎是你要创建一个Contents对象。但是然后(在到达语句技术的分号之前)你却说:“等一等,我想在这里插入一个类的定义."


每个内部类都能独立的继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)的实现,对于内部类都是没有影响的。


内部类可以实现多重继承
eg:
class D {}
abstract class E {}
class Z extends D{
E makeE(){return new E(){};}
}

public clss MultiImplementation{
static void takesD(D d){}
static void takesE(E e){}
public static void mian(String[] args){
Z z = new Z();
takesD(z);
takesE(z.makeE);
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值