一:why为什么需要
最重要是设计理念的区别:
继承体现的是 is a 的关系,父类中一般定义的是整个继承机构的共性功能;(只有一些子类都需要的功能才有必要放入父类简化代码)
实现体现的是 like a 的关系,接口中一般定义的是整个继承结构的扩展功能;(例如回调,内名内部类只是需要实现一个回调最后执行的方法就可以,如果去继承了一个父类,太浪费了)
接口是一个强制契约,要么不去实现,要么去实现接口全部的方法。
继承使用抽象类的话虽然也可以达到一样的效果,但是没有了接口更加方便简单了。