- interface A{
- void method1();
- }
- class B{
- private void f(){System.out.println("f()");}
- private void g(){System.out.println("g()");}
- public A getA(){
- return new AImp();
- }
- private class AImp implements A{
- public void method1(){
- f();
- }
- public void method2(){
- g();
- }
- }
- }
- public class Test{
- public static void main(String[] args) {
- B b = new B();
- //AImp aImp = b.new AImp(); // 由于AImp是private的 error
- A aImp = b.getA();// b.getA()向上转型,转型为一个接口 就可以在这里接口里放想要暴露的函数。
- aImp.method1(); // 只暴露menthod1
- // aImp.method2(); // The method method2() is undefined for the type A
- }
- }
使用接口来只暴露method1函数。向上转型为一个接口就可以在这里接口里放想要暴露的函数,这样我们在开发过程中暴露接口就保护了我们的方法...