接口类跟抽象类有什么区别

接口类和抽象类有什么区别
总感觉他们两是一个东西又不是一个东西,有种混乱的感觉。
------解决方案--------------------
抽象类
规定了一系列的方法,并规定了必须由继承类实现的方法。由于有抽象方法的存在,所以抽象类不能实例化
可以将抽象类理解为毛坯房,门窗、墙面的样式由你自己来定
所以抽象类与作为基类的普通类的区别在于约束性更强

接口类
与抽象类很相似,表现在接口中定义的方法,必须由引用类实现
但他与抽象类的根本区别在于用途:与不同个体间沟通的规则(方法)
你要进宿舍需要有钥匙,这个钥匙就是你与宿舍的接口
你的同室也有这个接口,所以他也能进入宿舍
你用手机通话,那么手机就是你与他人交流的接口

------解决方案--------------------
1. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类中可以有非抽象方法。抽象类是声明方法的存在而不去实现它的类。
2. 接口可以继承,抽象类不行。
3.接口定义方法,没有实现的代码,而抽象类可以实现部分方法。
4.接口中基本数据类型为static 而抽类象不是。
5.接口可以继承,抽象类不行。
6.可以在一个类中同时实现多个接口。
7.接口的使用方式通过implements关键字进行,抽象类则是通过继承extends关键字进行