Java——匿名内部类


/*

 * 匿名内部类,  就是内部类的简写形式。

 * 

 *  必须有前提:

 *  内部类必须继承或者实现一个外部类或者接口。

 * 匿名内部类其实就是一个子类对象。

 * 

 * 格式:new 父类or接口名 {}

 */

interface Inter

{

void show1();

void show2();

}


class Outer1

{

public void method()

{

/*

 * 通常的使用场景之一:

 *  当函数参数是接口类型时,而且接口中的方法不超过3个

 *  可以使用匿名内部类作为实际参数进行传递。

 */

Inter inter = new Inter()

{

@Override

public void show1()

{

// TODO Auto-generated method stub

System.out.println("实现show1()");

}

@Override

public void show2()

{

// TODO Auto-generated method stub

System.out.println("实现show2()");

}

};

/*

 * 编译看左边

 * 运行看右边

 */

inter.show1();

inter.show2();

    }

}


class Outer2

{

public void show3(Inter inter)

{

inter.show1();

inter.show2();

}

//调用show3()函数时   向里边传递一个匿名内部类     就是  不想再去定义一个类 然后 去继承这个借口

public void show4()

{

show3

new Inter()

{

@Override

public void show1()

{

// TODO Auto-generated method stub

}

@Override

public void show2()

{

// TODO Auto-generated method stub

}

}

    );

    }

}


//注意事项***********************************

class Outer3

{

    void method() 

{

Object obj = new Object()

{

public void show()

{

    System.out.println("内部类的函数");

}

};

obj.show();//错误使用       ----------以为匿名内部类这个子类对象被转成为了Object类型

//这样就不能在使用子类特有的 方法了。

}

}


练习题目 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值