原文地址:https://mp.weixin.qq.com/s/Iupw6xKd81k77dAPUBDm9Q
作者:码上实战
定义:一个是 abstract,一个是 interface
派生方式:抽象类单继承,接口多实现。子类继承抽象类通过 extends,单继承。抽象类实现接口通过 implement,多实现,接口继承接口通过 extedns
实例化:抽象类可以有构造方法,接口不能有构造方法
属性:抽象类可以定义有任意变量常量,接口中定义属性只能是(public)静态常量
实现方式:抽象类可以有普通方法,接口有默认方法和静态方法(JDK 1.8)
设计:抽象类是对一组类的共同特征进行抽象,是子类的模板(is-a),接口是对行为的抽象,是一种行为的规范和约束(like-a)
https://xmind.ai/share/d82j27rz?xid=WsOmyocs
随着JDK的不断迭代,抽象类和接口的区别已经有了些许改变,你是否还停留在JDK 7 的答案呢?
public abstract class A {
}
public abstract interface A {
}
public abstract class A {
}
public class B extends A {
}
public interface A {
}
public interface B {
}
public interface C extends A {
}
public class D implements B,C {
}