黑马程序员技术交流社区
标题:
匿名内部类和普通的类继承有什么区别
[打印本页]
作者:
魏宇
时间:
2012-5-6 23:06
标题:
匿名内部类和普通的类继承有什么区别
本帖最后由 魏宇 于 2012-5-6 23:18 编辑
匿名内部类没有方法名,怎么实例化呢,创建匿名内部类时可以带参吗?
作者:
胡生蒙
时间:
2012-5-6 23:12
匿名内部类:1、内部类的简写格式。2、定义匿名内部类的前提是内部类必须继承一个类或者实现接口。3、匿名内部类的格式:new 父类或接口(){定义子类的内容} 4、其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖,可以理解为带有内容的对象。
面试题:class InnerTest {
public static void main(String[] args) {
new Object() {
public void function() {
System.out.println("haha");
}
}.function();
}
}
输出 haha
创建匿名内部类可以带参数,只要他的父类有带参数的构造方法
作者:
乔建国
时间:
2012-5-6 23:14
匿名内部类可以扩展类,也可以实现接口,但不能两者皆备,实现接口时,只能实现一个接口。
匿名内部类不能定义构造器,因为匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以定义实例初始化块,
通过实例初始化块来完成构造器需要完成的事情。
带参数时,参数传递给匿名类的父类相应带参构造器
作者:
小鹿叙鹿
时间:
2012-5-6 23:24
匿名内部类只能使用一次,不区分static和非static。如果用到外部类的变量的话,必须是类变量或者实例变量,就是必须是类定义的变量,或者final的局部变量。匿名内部类如果是继承某个类的话是可以重写那个类的方法的,这个和普通内部类一样
内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,
内部类可以实例化,多次使用
所有可以用匿名内部类的地方都可以用内部类替换,但是用匿名内部类编码非常简洁,也容易读懂,除非你需要多次使用那个内部类,不然总是建议使用匿名内部类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2