抽象类是将许多特定事物的共同特征和方法分离出来,可以提高代码的可重用性。同时,它可以把子类的具体方法留给子类,这样子类就不需要实现所有的方法,只需要实现自己的业务逻辑。通常,抽象类可以用在模板方法中。
1、java接口与抽象类相同](1)不能实例化。
(2)接口的实现类或抽象类的子类只能在接口或抽象类中的方法实现后实例化。
2、java接口与抽象类的区别
(1)接口只有定义,没有方法实现。默认方法体可以在java1.8中定义,抽象类可以有定义和实现,方法可以在抽象类中实现。
(2)实现接口的关键是实现,继承抽象类的关键是扩展。一个类可以实现多个接口,但一个类只能继承一个抽象类。因此,可以通过使用接口间接实现多重继承。
(3)接口强调特定功能的实现,而抽象类强调所有权。
(4)接口成员变量的默认值是publicstaticfinal,必须为其分配一个初始值,并且不能修改。它的所有成员方法都是公开的和抽象的。abstract类中的成员变量默认为default,可以在子类中重新定义或重新赋值;abstract方法由abstract修改,不能由private、static、synchronized和native修改,必须以分号结尾,不能用大括号括起来。