靜態內部類

Java語言允許在類中再定義類,這種在其它類內部定義的類就叫內部類。內部類又分為:常規內部類、局部內部類、匿名內部類和靜態嵌套類四種。

簡介

靜態內部類

靜態內部類定義在類中,任何方法外,用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();

}

}

相關詞條

熱門詞條

聯絡我們