java中匿名对象和匿名类都有关键词new吧那他们应该怎么区分呢?是不是匿名类就没有方法体匿名对象就有方法体呢?具体是如何区分的呢?
首先,匿名对象是没有变量接收的对象,例如 new Date();
这就是定义了一个Date 类型的匿名对象,之所以叫匿名,是因为它没有变量接收,不能调用对象的.操作。
其次,匿名类是没有显示定义类文件的类,但它不一定是匿名对象,例如:
Out anonyInter=new Out(){// 获取匿名内部类实例
void show(){//重写父类的方法
System.out.println("this is Anonymous InterClass showing.");
}
};
anonyInter.show();// 调用其方法
匿名类是有方法体的,使用匿名内部类只是在这地方想对某个类有特殊的实现,而又不想专门定义一个实现类,就用匿名类了。
根本没有可比性啊。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。