1.抽象类:抽象类更像是一个模板,它拥有类的所用功能,它不仅可以写抽象方法,也可以写实现的方法,定义变量等等。总归他有类的一切功能只是不能被实例化而已。它有单继承的功能。
2.接口:接口更像是对于行为上的定义,它是抽象方法的集合。它的变量会被private static final默认修饰。他可以拥有多实现的功能。
抽象类不需要子类强制覆写所有功能,接口必须要子类覆写所有的功能。
在代码中我们用抽象类多用于一个模板的扩展,如我们抽象化一个People类,然后给People类写入吃喝拉撒的实现方法,然后又写入一个个抽象方法是医生,那么用个医生类去继承People类,那么这个医生不仅仅可以写入自己的功能,它依然还保留着作为人类的独特功能。
若是用接口去实现的话我们必须要写多个抽象方法,并且都要覆盖重写,这样很麻烦,所以具体用法具体斟酌。