1、什么是抽象类
众所周知,在Java面向对象的概念中,所有的对象的描述都是通过类来实现的,但是并不是所有类都是用来描述对象的,这比如说抽象类,在我的理解中,抽象类就类似一个模板,并没有将一个对象描述的很清楚,因为它并没有足够的信息去描述一个具体的对象,这就是所谓的抽象类。抽象类其实和普通的类基本一样,除了抽象类不能实例化之外,普通类有的功能它都有,成员变量、成员方法和构造方法的访问方式和普通类一样,抽象类作为一个模板,是继承它的子类的父类,它提取了子类的通用的方法,供子类使用,很好的实现了代码的复用。
2、为什么使用抽象类
其实一开始我也是不理解的,为什么要引入抽象类,就使用普通类难道不行吗?答案是只使用普通类是可以的,子类去继承一个普通类也是可以的,子类完全可以覆盖父类的方法,似乎抽象类完全没有必要。但是仔细想想,其实父类的有些方法,完全没有必要详细的去写怎么实现这个方法的,因为子类实现这个方法可能各有不同,父类具体去写这个方法就很没必要了,这就体现出抽象类的重要性了。这样别人看到你的代码,或你看到别人的代码,你就会注意抽象方法,而知道这个方法是在子类中实现的,所以,有个提示作用。
3、抽象类和接口的区别
一张图就可以说清楚:
4、什么时候使用抽象类和接口
原文:https://www.cnblogs.com/afei1013/p/14420328.html