在java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。
inner class 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。
inner class的名字不能与包含它的类名相同
inner class可以使用外部类的私有数据,因为它是外部类的成员,同一个类的成员之间可互相访问。而外部类要访问内部类中的成员需要:内部类.成员或者内部类对象.成员。
分类:成员内部类(static成员内部类和非static成员内部类)
局部内部类(不谈修饰符)、匿名内部类
内部类特性
可以声明为final的。
和外部类不同,inner class可声明为private或protected。
inner class可以声明为static的,但此时就不能再使用外层类的非static的成员变量。
inner class作为类:
可以声明为abstract类,因此可以被其它的内部类继承。
非static的内部类中的成员不能声明为static的,只有在外部类或者static的内部类中才可声明static成员。
内部类有什么用?
内部类主要是解决java不能多重继承的问题。可以使用内部类来变相的实现类的多重继承,可以同时继承多个类。