因为抽象类需要被继承才能实例化,所以抽象类不得不有着代码复用的功能。
所谓的代码复用,就是你在父类定义了一些方法,在子类继承后,不用定义,不用重写这些方法,但这些方法却能被子类使用。
说到这里,其实继承和抽象能有什么关系呢?其实并没有,有的只是联系。
抽象类呢最主要的作用是定义一个共同的接口,让其子类根据自身的需求实现不同的功能,诶,这个功能接口可以实现。
那么接口可抽象的区别呢?
接口更多的,其实是在约定一个协议,在何种情况下,我传入何种参数,获得何种结果,不用去考虑里面是如何实现的,发生了什么。
抽象则是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程,所以抽象是有规定方向的,接口则没有
其实你可以看成抽象是继承和接口部分功能的结合体,当你想实现代码复用和定义一个共同的接口,让其子类根据自身的需求实现不同的功能的时候,就用它。