Android面试每日一题:抽象类与接口的区别?

Posted 伯努力不努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android面试每日一题:抽象类与接口的区别?相关的知识,希望对你有一定的参考价值。

大体区别如下:

抽象类可以提供成员方法的实现细节,而接口中只能存在 public 抽象方法;
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的;
接口中不能含有构造器、静态代码块以及静态方法,而抽象类可以有构造器、静态代码块和静态方法;
一个类只能继承一个抽象类,而一个类却可以实现多个接口;
抽象类访问速度比接口速度要快,因为接口需要时间去寻找在类中具体实现的方法;
如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。如果你往接口中添加方法,那么你必须改变实现该接口的类。
接口更多的为了约束类的行为,可用于解耦,而抽象类更加侧重于代码复用。

同时这里也抛出一个问题:日常SDK开发过程中如果直接更改接口函数可能会导致兼容性问题,一般情况下我们可以如何规避这个问题?

以上是关于Android面试每日一题:抽象类与接口的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题 - 抽象类与接口的区别

Android面试每日一题:BroadcastReceiver 与 LocalBroadcastReceiver 有什么区别?

Android面试每日一题:BroadcastReceiver 与 LocalBroadcastReceiver 有什么区别?

Java实习生常规技术面试题每日十题Java基础

Java实习生常规技术面试题每日十题Java基础

Java抽象类与接口的区别