黑马程序员技术交流社区
标题:
关于匿名内部类的问题?
[打印本页]
作者:
张占忠
时间:
2012-12-27 15:50
标题:
关于匿名内部类的问题?
今天,突然看到一个没见过的东西,一查才知道匿名内部类。查了半天资料,没找到一点头绪!
谁可以解释一下,在什么情况下才用到匿名内部类!他都有什么特性,使用方法又是什么?
作者:
netboy032
时间:
2012-12-27 15:56
(1).匿名内部类其实就是内部类的简写形式。
(2).定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。
(3).匿名内部类的格式:new 父类或者接口(){定义子类的内容}
(4).其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。
(5).匿名内部类中定义的方法最好不要超过3个。不然定义和调用的时候,可读性差。
示例:
abstract class Rrr{
abstract void show();
}
class Outerr{
int temp = 5;
/*class InnerT extends Rrr{
void show(){
System.out.println("内部类");
}
}*/
public void via(){
new Rrr(){ //这是一个子类对象
void show(){
System. out.println( "匿名内部类" );
}
}.show();
//new InnerT().show();
}
}
public class InnerCast {
public static void main(String[] args) {
Outerr ou = new Outerr();
ou.via();
}
}
作者:
杜天伟
时间:
2012-12-27 16:33
abstract class AbsDemo
{
abstract void show();
}
class Outer
{
int x = 3;
public void function()
{
AbsDemo d = new AbsDemo()
{
int num = 9;
void show()
{
System.out.println("num==="+num);
}
void abc()
{
System.out.println("haha");
}
};
d.show();
//d.abc();//编译失败;
}
}
class InnerClassDemo4
{
public static void main(String[] args)
{
new Outer().function();
}
}
复制代码
匿名内部类 我刚看到这
匿名内部类:
1,匿名内部类其实就是内部类的简写格式。
2,定义匿名内部类的前提:
内部类必须是继承一个类或者实现接口。
3,匿名内部类的格式: new 父类或者接口(){定义子类的内容}
4,其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。 可以理解为带内容的对象。
5,匿名内部类中定义的方法最好不要超过3个。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2