abstract class vc interface

abstract class 和 interface 都提供可以不具体实现的方法。其中一个类不能继承多个abstract方法,但是可以实现多个interface。java类没有多继承,但是通过interface来来补充。通过实现过个interface,来实现java多重继承。 java中所有的对象可以用类来表示,但并不是所有的类都是来描绘对象的。用来描绘某一类对象共有的本质就是抽象。

 

 different 从语言层面讲:

abstract class :

可以有 自己的 (private)数据成员。 有些方法可以具体实现。

abstract class可以提供某些方法的部分实现,而interface不可以,这大概就是abstract class唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而 interface做不到这一点,如果向一个interface里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再 实现这个方法才行。

 

 

 interface :

不可能有自己的数据成员,只能有静态的,不能被修改的 数据成员。即就是 static final。

所有的成员方法都是abstract的。从这方面说interface是abstract class 的一种特殊情况。

发布了40 篇原创文章 · 获赞 0 · 访问量 4388
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章