内部类
定义:一个类在另一个类内部 Inner Outer
特点:必须先创建外部类对象才能创建内部类,Inner通常只服务于Outer,可以直接调用Outer的成员及方法(所有元素)
可以实现多重继承(多个内部类)
通过匿名内部类优化简单的接口实现(用匿名内部类来实现接口)
格式:外部类类名.内部类类名 引用名=new 外部类类名().new 内部类类名();
Outer.Inner inner=new Outer().new Inner();
静态内部类
定义:内部类前用static修饰,静态内部类对象不依赖于外部类的对象(可以直接创建)
特点:只能访问Outer的静态成员
创建对象通过外部类类名创建
一个类中可以定义多个静态内部类
格式:外部类类名.内部类类名 引用名=new 外部类类名.内部类类名();
Outer.Inner inner=new Outer.Inner();
匿名内部类
定义:一个类通常只用来实现某个接口或者继承某个类时,可以不命名,称之为匿名内部类
格式:接口(父类类型) 变量名=new 接口(父类)(构造方法参数){
匿名类中定义的成员变量或方法(重写抽象方法)
};
或 new 接口(父类)(){
重写方法;
{