黑马程序员技术交流社区
标题:
谁给我详细说说匿名内部类的问题啊?拜谢
[打印本页]
作者:
E.Young
时间:
2015-4-7 22:27
标题:
谁给我详细说说匿名内部类的问题啊?拜谢
本帖最后由 E.Young 于 2015-4-8 21:00 编辑
看了好几遍了,还是不太明白匿名内部类啊。。。郁闷。。哪位大神给我好好说道说道匿名内部类啊
作者:
silencelj
时间:
2015-4-8 10:39
本帖最后由 silencelj 于 2015-4-8 10:42 编辑
匿名内部类:就是没有名字的内部类
1.匿名内部类其实就是内部类的简写格式。
2.定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。
3.匿名内部类的格式: new 父类或者接口(){定义子类的内容}
4.其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。
5.匿名内部类中定义的方法最好不要超过3个。
作者:
silencelj
时间:
2015-4-8 10:45
本帖最后由 silencelj 于 2015-4-8 10:52 编辑
由于代码多了点只能用两次回复了,希望能帮助你!!!
//首先是建立一个父类,这是定义内部类的前提
abstract class AbsDemo
{
abstract void show();
}
//建立一个外部类
class Outer
{
public void function()
{
AbsDemo d = new AbsDemo()
{
void show()
{
System.out.println();
}
void abc()
{
System.out.println("");
}
}.show() //通过匿名内部类调用方法,show();匿名对象对方法只能调用一次
//d.abc() 会出错,因为父类中没有定义abc()方法。
//---------------------------测试----------------------------------------
//使用输出语句部分打印匿名内部类建立对象的部分,
//证实AbsDemo d = new Inner();其中{}部分是实现内部类的创建对象。
System.out.println(
new AbsDemo()
{
void show()
{
System.out.println("测试:打印匿名内部类创建的是对象");
}
}
);
//Outer$1@ca0b6--------打印对象的结果,说明已经创建Inner匿名内部类对象然后通过 “ . show()”方式调用方法。
//-------------------------------------------------------------------------
}
}
class InnerClassDemo
{
public static void main(String []args)
{
Outer out = new Outer();
out.function();
}
}
作者:
showdy
时间:
2015-4-8 21:06
匿名内部类感觉就是不想写子类,不想创建子类对象,直接使用匿名对象实现接口方法的一种途径
作者:
初夜告白
时间:
2015-4-8 21:09
我也不知道啊 今天讲的很恼火
作者:
蛋糕的爱意
时间:
2015-4-9 13:39
上面那位,请问
怎么恼火了?
作者:
于先森
时间:
2015-4-13 19:22
匿名内部类,就是在类里面创建(new 接口 抽象类 普通类{})使创建类(成员变量,成员函数)调用匿名对象为一体的 体现形式 很方便的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2