抽象类和接口的区别
抽象类 | 接口 | |
---|---|---|
成员变量 | 是普通变量,可以是常量,可以是变量 | 只能是公共的静态的常量 |
成员方法 | 有构造方法,可以是抽象的,也可以是非抽象的 | 只能是抽象的 |
设计理念 | 被继承体现的是 is a的关系 抽象类中定义的是该继承体系的共性功能 | 被实现体现的是like a的关系 接口中定义的是该继承体系的扩展功能 |
实例化 | 不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象 | 不能直接实例化,如果要实例化,接口变量必须指向实现所有接口方法的类对象 |
关键字 | abstract | inferce |
实现 | 只能被单继承 | 可以实现多个接口 |
参考:
https://blog.csdn.net/chajinglong/article/details/78855420