首先,接口有着类似于抽象类的好处,可以使实现这个接口的每个类都“不得不复写其中的方法”,使得整个项目中的每一个对象都不至于在代码编写阶段“遗忘实现功能的BUG”,提高了开发的效率(否则你可能要到测试调试阶段才能发现自己的粗心,回来返工是一种很大的浪费),这是一种把UncheckException转化为CheckException的思维方式。另外,使用接口的对象在实际使用时就可以通过向上转型,实现“操作接口实现类对象自己的方法”,这样可以大大简化控制代码(相应要增加的是判断代码)。我的理解是,这些东西必须要放到“面向对象”的思维里去认识其价值,尤其要考虑到“对象很多”,“环境很复杂”,“环境不安全”,“需求会变化”等等情况。
另外,计算过程没有“在内存中完成”的说法,内存说到底是存储介质,有的是栈内存堆内存方法区常量池这些东西,计算都是靠的CPU,只不过有从哪里取值,需不需要开辟内存的区别就是了 |