前言
乍看之下,两者实现的功能好像差不多,因为两者都不能被实例化,但其实差别还是很大的
区别
-
抽象类要被子类继承
接口要被类实现
-
接口只能做方法声明
抽象类中可以作方法声明,也可以做方法实现
-
接口里定义的变量只能是公共的静态的常量
抽象类中的变量是普通变量
-
接口是设计的结果
抽象类是重构的结果.这里用通俗易懂一点的话来讲,就是:
接口,就是写文章先写好所有的小标题。然后所有人都使用一样的小标题,但底下的文章可以自由发挥
抽象类,就是写文章先写好所有的小标题,但小标题下也可以先预先写好部分文章。然后别人在用这些标题的时候,可以直接用那些文章,也可以不要那些文章,而是重写成自己的文章。
-
抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高
-
抽象类可以有具体的方法和属性
接口只能有抽象方法和不可变常量
7.抽象类主要用来抽象类别
接口主要用来抽象功能
这一点道出本质!!!