天天看点

接口与抽象类的区别?

抽象类,可以有不抽象的方法,

接口:一定都是抽象的东西,而且只有常量。

接口:是为了解决java 中的单继承问题,一个类可以继承多个接口

2. 接口中的实例变量默认是 final 类型的,而抽象类中则不一定

3. 一个类可以实现多个接口,但最多只能实现一个抽象类

现在有很多讨论和建议提倡用interface代替abstract类,两者从理论上可以做一般性的混用,但是在实际应用中,他们还是有一定区别的。抽象类一般作为公共的父类为子类的扩展提供基础,这里的扩展包括了属性上和行为上的。而接口一般来说不考虑属性,只考虑方法,使得子类可以自由的填补或者扩展接口所定义的方法,

总之,在许多情况下,接口确实可以代替抽象类,如果没有说属性上的继承的话。