有个问题一直弄不明白不是说接口中只包含常量和方法的定义,而没有变量和方法的实现么?为什么还能调用方法呢?例如  Map map = new hashMap();,可以用map.put(),但Map是个接口,他的方法怎么能用

解决方案 »

  1.   

    应为你创建的是Map的子类HashMap的对象,在HashMap中实现了put()方法。父类引用map指向子类HashMap的一个对象,调用put()方法时会去找子类中重写过的put()方法
    这涉及到多态(动态绑定)的概念,建议LZ去看看。
      

  2.   

    谢谢了,一说我就明白了,看API那时候还纳闷呢,怎么没方法体还能用多态虽然知道是什么但是没往这方面想