存在乎義
一、內部類能夠很好的實現隱藏
通常的非內部類,是不容許有private與protected權限的,但內部類能夠html
二、內部類擁有外部類全部元素的訪問權限 ,private修飾也能訪問。ide
三、可實現多重繼承 ,讓多個內部類分別繼承多個其餘類,使外部類能夠同時獲取多個其餘類的屬性。htm
四、能夠避免修改接口而實現同一個類中兩種同名方法的調用。(外部類繼承,讓內部類實現接口)
參考:https://www.jianshu.com/p/f0fdea957792對象
靜態、非靜態內部類的區別
一、聲明
靜態內部類中能夠聲明靜態成員變量和靜態方法;非靜態內部類不能。blog
二、訪問
靜態內部類只能訪問外部類的靜態成員變量和靜態方法(靜態內部類不持有外部類引用);非靜態內部類能夠訪問外部類的全部成員和方法。繼承
三、建立
聲明靜態內部類時,不依賴於外部類對象;聲明非靜態內部類時,依賴於外部類對象。
//假設類A有靜態內部類B和非靜態內部類C,建立B和C的區別爲:
A.B b=new A.B(); //靜態內部類
A a=new A();
A.C c=a.new C(); //非靜態內部類接口