A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刚学完匿名对象和匿名内部类,表示 还是不太理解他们,你们是怎么理解的!~?

3 个回复

倒序浏览
先说一下匿名对象,就是没有名字的对象,当你用一个方法,比如
Person p = new Person();
p.eat();
这个方法只调用一次时,这里用匿名对象可以简化代码,直接
new Person().eat();//new Person()表示创建了Person类的对象,直接调用对象的方法
回复 使用道具 举报
再说说匿名内部类。
abstract class Person{
abstract eat();}
}
class Student extends Person {
eat(){s.o.p("吃肉");}
}
看代码就知道,当我们想使用它时,需要先创建Person的一个子类,在去创建子类的实例,去调用方法。
而如果用匿名内部类,直接
Person p = new Person() {
eat(){
s.o.p("吃肉");
}
};
就可以实现了。大大简化了代码
回复 使用道具 举报
Hi.。 发表于 2015-12-21 02:32
再说说匿名内部类。
abstract class Person{
abstract eat();}

补充:只要这个类是抽象类,或者是接口,都可以使用匿名内部类的方式来实现。但匿名内部类只调用一次,而且重写的方法不要过多,最好是只有一个(超过3个就不要用了)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马