1、内部类的概念
声明在另外一个类里面的类就是内部类。
2、内部类的4种形式
(1)静态内部类
(2)非静态成员内部类
(3)有名字的局部内部类
(4)匿名内部类
匿名内部类
1、语法格式:
在匿名子类中调用父类的无参构造
new 父类(){
内部类的成员列表
}
在匿名子类中调用父类的有参构造
new 父类(实参列表){
内部类的成员列表
}
接口没有构造器,那么这里表示匿名子类调用自己的无参构造,调用默认父类Object的无参构造
new 父接口名(){
}
2、匿名内部类、匿名对象的区别?
System.out.println(new Student("张三"));//匿名对象
Student stu = new Student("张三");//这个对象有名字,stu
既有匿名内部类,又是一个匿名的对象
new Object(){
public void test(){
.....
}
}.test();
这个匿名内部类的对象,使用obj这个名字引用它,既对象有名字,但是这个Object的子类没有名字
Object obj = new Object(){
public void test(){
.....
}
};