内部类可以用来实现c中的多重继承:a.既可以调用外部类的方法,b.又可以继承别的类调用继承类的方法
关于"new Interface "这个问题:java中明确表示接口不可以被实例化,但是在使用匿名内部类时有一种特殊的语法与“实例化一个接口”类似:
interface ProgrammerInterview { public void read(); } class Website { ProgrammerInterview p = new ProgrammerInterview () { public void read() { System.out.println("interface ProgrammerInterview class implementer"); } }; }
上面红色代码处就是“实例化一个接口”,其实他的含义 class A implements ProgrammerInterview{}简写之后就成了上面那个鬼样子O(∩_∩)O~。恩,它也是java中唯一一个实现接口但是却没有“implements”关键字的写法。
接口内部类
public interface ClassInInterface{ void howdy(); class Test implements ClassInInterface{ public void howdy(){ System.out.println("Howdy!"); } public static void main(String[] args){ new Test().howdy(); } } }
如果你想要创建某些公共代码,使得它可以被某些接口的所有不同实现所共用,那么使用接口内部类会更方便