一、前言:
1、总的来说,抽象类就是一种特殊的类,这种类不能被实例化,就是说你不能通过这个类new一个新的对象,它只能由其派生类(子类)去重写。
2、抽象类之所以有抽象这两个字,是因为抽象类里边的方法是没有方法体的,只有方法的声明。
3、接口就是更加特殊的抽象类,这个特殊之处,就是本文所要探索的内容。
4、另外,本人是菜鸟,如果有错误的地方还请大佬指出。
5、关于本菜鸟对于抽象类存在的好处的理解,现阶段下我只是觉得它可以让你的思路更清晰。因为首先要把你的类的声明写出来,在逻辑方面更加清爽。
二、、区别
1、:关键字:
抽象类的关键字是abstract
接口的关键字是interface
2、继承 / 实现:
抽象类:只能被类或抽象类继承,不支持多重继承。
接口:既可以被接口继承,也能被类或抽象类继承,可以继承多个接口,继承多个接口时使用逗号隔开
3、字段
抽象类:数据与可以使用各种类型,也可以实现数据域的封装
接口:定义时要初始化,只能使用 final、static、public。
4、方法
抽象类:可以含普通方法,也可以含抽象方法。
接口:只能含抽象方法,而且必须是public的。