抽象和接口的面试问题
最近去面试,面试官问到一个平常自己不留意和学习那时候还没有非常清晰的分清楚的问题
就是抽象和接口的问题
面试官问到:
抽象类和接口有什么区别, 什么情况用抽象,什么情况用接口?
如果本身是接口的类把它换成抽象可以不,如果本身是抽象类把它换成接口,可以不?请说明
这一问 就把我问到了, 对方不给我念书本上的概念, 我就随便说了
想数据库驱动的那些 就用接口, 如果有相同功能的比如 同样的 增删改查 就抽象出来。 但面试官的表情不太好
请高手问指点一下, 谢谢!
------解决方案--------------------1:抽象类和接口有什么区别, 什么情况用抽象,什么情况用接口?
接口中只可以有抽象方法和常量, 而抽象类中可以有非抽象方法和一些成员变量! 需要给子类提供方法或者变量时的方法的时候应该使用抽象类, 而相反就使用接口!
2:如果本身是接口的类把它换成抽象可以不,如果本身是抽象类把它换成接口,可以不?请说明
参照第一题答案
个人理解,非标答
------解决方案--------------------
我个人在工作中, 一般用 抽象类 作为 公共部分 抽取出来
然后 让不同的子类去继承ta, 就像一个模板方法那样子
接口的话, 我个人觉得就像 我定义了一个标准 让其他人实现