黑马程序员技术交流社区

标题: 关于访问内部类方法的问题 [打印本页]

作者: 杨博    时间: 2013-3-16 22:31
标题: 关于访问内部类方法的问题
本帖最后由 杨博 于 2013-3-16 23:15 编辑
  1. class Test1
  2. {
  3. public static void main(String[] args)
  4. {
  5. Outer out=new Outer();

  6. myInter obj=out.show();

  7. obj.print();
  8. }
  9. }

  10. class Outer
  11. {
  12. public myInter show(){

  13. class Inner implements myInter
  14. {
  15. public void print(){
  16. System.out.println("print msg");
  17. }
  18. }
  19. Inner in=new Inner();

  20. return in;
  21. }
  22. }

  23. interface myInter
  24. {
  25. void print();
  26. }
复制代码
为什么我想直接访问内部类方法:Object obj=new Outer().show();不成功,为什么做了接口,能成功访问,我的疑问是,myInter obj=out.show();这个运行,怎么就能访问到了,求解答

作者: 我自信我很牛    时间: 2013-3-16 22:48
这个是影藏的工厂模式,outer的show方法制造了一个接口实现的内部类的对象,这样就是父类引用指向了子类对象,这样就可以直接调用子类特有的方法了。
作者: 我自信我很牛    时间: 2013-3-16 22:54
最后一句错了,是子类重写父类的方法。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2