美文网首页
interface和abstract的区别

interface和abstract的区别

作者: LEO_青蛙 | 来源:发表于2019-06-27 11:23 被阅读0次

共同点

(1)两者都是抽象类,都不能实例化。
(2)interface实现类和abstract继承类都必须实现抽象方法。

不同点

(1)interface需要实现,用implements;abstract需要继承,用extends。
(2)一个类可以实现多个interface;一个类只能继承一个abstract。
(3)interface强调功能的实现;abstract强调从属关系。
(4)interface的所有抽象类都只有声明没有方法体;abstract抽象方法可以选择实现,也可以选择继续声明为抽象方法,无需实现,留给子类去实现。

Interface Abstract class
实例化 不能 不能
一个类可以实现多个interface 一种继承关系,一个类只能使用一次继承关系。可以通过继承多个接口实现多重继承
数据成员 静态的不能被修改即必须是static final,一般不在此定义 可有自己的
方法 不可有私有的,默认是public,abstract 类型 可以私有的,非abstract方法,必须实现
变量 不可有私有的,默认是public static final 型,且必须给其初值,实现类中不能重新定义,不能改变其值。 可有私有的,默认是friendly 型,其值可以在子类中重新定义,也可以重新赋值
设计理念 表示的是“like-a”关系 表示的是“is-a”关系
实现 需要实现,要用implements 需要继承,要用extends

相关文章

网友评论

      本文标题:interface和abstract的区别

      本文链接:https://www.haomeiwen.com/subject/dkplcctx.html