什么是静态内部类介绍
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(){ return new MachineHeart();}class Test{ publicstaticvoid main(String args){ Robot robot=new Robot(); Machine m=robot.getMachine(); m.run(); robot.run(); }}