靜態內部類

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(){returnnew MachineHeart();}class Test{publicstaticvoid main(String[] args){Robot robot=new Robot();Machine m=robot.getMachine();m.run();robot.run();}}

相關詞條

熱門詞條

聯絡我們