内部类

在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不能多重继承的问题。可以使用内部类来变相的实现类的多重继承,可以同时继承多个类。