内部类是指在一个外部类的内部再定义一个类。将一个类A定义在另一个类B里面,里面的那个类称为内部类,B则称为外部类。
成员内部类成员内部类:定义在类中方法外的类。
定义格式:
访问特点class 外部类 {
class 内部类 {
}
}
内部类可以直接访问外部类的成员,包括私有成员。
外部类要访问内部类的成员,必须要建立内部类的对象。
创建内部类对象格式:
匿名内部类外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
匿名内部类:是内部类的简化写法。它的本质是⼀个带具体实现的 父类或者父接口的 匿名的 子类对象。
匿名内部类必须继承⼀个父类或者实现⼀个父接口。
格式使用方式new 父类名或者接口名() {
// 方法重写
@Override
public void method() {
// 执行语句
}
};
以接口为例:
定义接口:
public abstract class FlyAble {
public abstract void fly();
}
创建匿名内部类,并调用:
public class InnerDemo {
public static void main(String[] args) {
FlyAble f = new FlyAble() {
public void fly() {
System.out.println("我飞了~~~");
}
};
// 调用fly方法,执行重写后的方法
f.fly();
}
}



