内部类,即类内部的类。类中类。形式以下:java
public class Outter{ // 外部类 class Inner{ // 内部类 } }
通常的非内部类,是不容许有 private 与protected权限的,但内部类能够学习
平时咱们对类的访问权限,都是经过类前面的访问修饰符来限制的,通常的非内部类,是不容许有 private 与protected权限的,但内部类能够,因此咱们能经过内部类来隐藏咱们的信息。这看起来没什么做用,可是当内部类实现某个接口的时候,在进行向上转型,对外部来讲,就彻底隐藏了接口的实现了。优化
内部类虽然和外部类写在同一个文件中, 可是编译完成后, 仍是生成各自的class文件,内部类经过this访问外部类的成员。this
这个特色很是重要,它是内部类存在的最大理由之一。正是因为他的存在使得Java的继承机制更加完善。你们都知道Java只能继承一个类,它的多重继承在咱们没有学习内部类以前是用接口来实现的。但使用接口有时候有不少不方便的地方。好比咱们实现一个接口就必须实现它里面的全部方法。而有了内部类就不同了。它可使咱们的类继承多个具体类或抽象类。code
有了匿名内部类,能够不须要定义一个新的类,而直接经过匿名内部类建立对象。对那些只是用一次的类是很是方便的事情。对象