大世界——小人物

导航

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类型

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

}

}


练习题目 

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2014-07-07 09:48  大世界——小人物  阅读(106)  评论(0编辑  收藏  举报