From 4d6e6581e720d2fe8b8ce25a2c31edb3d5c17127 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 23 Feb 2022 22:33:39 +0800 Subject: [PATCH] Update java-basic-questions-02.md --- docs/java/basis/java-basic-questions-02.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/java/basis/java-basic-questions-02.md b/docs/java/basis/java-basic-questions-02.md index 5056445b..064a66cf 100644 --- a/docs/java/basis/java-basic-questions-02.md +++ b/docs/java/basis/java-basic-questions-02.md @@ -108,6 +108,20 @@ public class Student { - 多态不能调用“只在子类存在但在父类不存在”的方法; - 如果子类重写了父类的方法,真正执行的是子类覆盖的方法,如果子类没有覆盖父类的方法,执行的是父类的方法。 +### 接口和抽象类有什么共同点和区别? + +**共同点** : + +- 都不能被实例化。 +- 都可以包含抽象方法。 +- 都可以有默认实现的方法(Java 8 可以用 `default` 关键在接口中定义默认方法)。 + +**区别** : + +- 接口主要用于对类的行为进行约束,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调的是所属关系(比如说我们抽象了一个发送短信的抽象类,)。 +- 一个类只能继承一个类,但是可以实现多个接口。 +- 接口中的成员变量只能是 `public static final` 类型的,不能被修改且必须有初始值,而抽象类的成员变量默认 default,可在子类中被重新定义,也可被重新赋值。 + ### 深拷贝和浅拷贝区别了解吗?什么是引用拷贝? 关于深拷贝和浅拷贝区别,我这里先给结论: