抽象类属于类,它可以定义一个体系,而接口是规范、扩展功能;
它们在定义上有些类似,但是各司其职;
接口的比喻:
比如说要进入黑马,必须满足下列条件:
1.学会基础视频
2.通过入学考试
这些条件要通过接口定义,要进入黑马的人(比如他原来是环卫工人)只要实现了这个接口,就可以进入黑马,成为黑马程序员;对于黑马训练营来说,此接口就是一个黑马对想要进入黑马的人定义的规范,而对于环卫工人来说,他通过达到黑马的要求(即实现接口)扩展了自己的功能;
抽象类的比喻:
比如我们要定义人这样一个类,类里面有一个方法叫到达北京,每个人到达北京的方式可能不一样,有人坐飞机,有人坐火车,这个方法需要定义成抽象的,而具体如何达到的,由人的子类去实现,那么人和它的子类就构成了一个体系,这个体系的主框架就是由人定义的;
至于你的问题“如果是面向接口编程,有接口不就够了吗?为什么要有抽象类”,面向接口编程,用的是接口,并没有使用抽象类; |