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"); } } Machine getMachine() ...{ returnnew MachineHeart(); } } class Test ...{ publicstaticvoid main(String[] args) ...{ Robot robot=new Robot(); Machine m=robot.getMachine(); m.run(); robot.run(); } }
匿名类可以实现一个抽象类和一个类
class A ...{ void fn1() ...{ } } abstractclass B ...{ abstractvoid fn2(); } class C extends A ...{ B getB() ...{ returnnew B() ...{ publicvoid fn2() ...{ } }; } } class Test ...{ staticvoid method1(A a) ...{ a.fn1(); } staticvoid method2(B b) ...{ b.fn2(); } publicstaticvoid main(String[] args) ...{ C c=new C(); method1(c); method2(c.getB()); } }