-
靜態內部類
鎖定
Java語言允許在類中再定義類,這種在其它類內部定義的類就叫內部類。內部類又分為:常規內部類、局部內部類、匿名內部類和靜態嵌套類四種。
- 中文名
- 靜態內部類
- 定 義
- 用static定義
- 訪 問
- 只能訪問外部類的靜態成員
- 生 成
- 靜態內部類的對象可以直接生成
靜態內部類簡介
靜態內部類
靜態內部類定義在類中,任何方法外,用static定義。
靜態內部類只能訪問外部類的靜態成員。
生成(new)一個靜態內部類不需要外部類成員:這是靜態內部類和成員內部類的區別。靜態內部類的對象可以直接生成:
Outer.Inner in=new Outer.Inner();
而不需要通過生成外部類對象來生成。這樣實際上使靜態內部類成為了一個頂級類。可以定義私有靜態內部類。
靜態內部類注意
當類與接口(或者是接口與接口)發生方法命名衝突的時候,此時必須使用內部類來實現。
用接口不能完全地實現多繼承,用接口配合內部類才能實現真正的多繼承。
靜態內部類舉例
對於兩個類,擁有相同的方法: class People{ run(); } interface Machine{ run(); } 此時有一個robot類: class Robot extends People implement Machine. //此時run()不可直接實現。 interface Machine{ void run(); } class Person{ void run(){ System.out.println("run"); } } class Robot extends Person{ private class MachineHeart implements Machine{ public void run(){ System.out.println("heart run"); } } public void run(){ System.out.println("Robot run"); } Machine.getMachine(){ return new MachineHeart(); } class Test{ publicstaticvoid main(String[] args){ Robot robot=new Robot(); Machine m=robot.getMachine(); m.run(); robot.run(); } }