词条 | 静态内部类 |
释义 | 静态内部类 静态内部类定义在类中,任何方法外,用static定义。 静态内部类只能访问外部类的静态成员。 生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成: Outer.Inner in=new Outer.Inner(); 而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。静态内部类不可用private来进行定义。 注意:当类与接口(或者是接口与接口)发生方法命名冲突的时候,此时必须使用内部类来实现。 用接口不能完全地实现多继承,用接口配合内部类才能实现真正的多继承。 例子: 对于两个类,拥有相同的方法: 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 { privateclass MachineHeart implements Machine { publicvoid run(){System.out.println("heart run");} } publicvoid 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(); } } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。