1. 程式人生 > >java-抽象類和介面的區別

java-抽象類和介面的區別

1、成員區別:

 -  抽象類

    *  成員變數:可以變數,也可以常量

    *  構造方法:有

    *  成員方法:可以抽象,也可以非抽象

 -  介面

    *  成員變數:只可以常量

    *  構造方法:沒有

    *  成員方法:只可以抽象

 

2、關係區別:

 -  類與類:繼承,單繼承,多層繼承

 -  類與介面:實現,單實現,多實現

 -  介面與介面:繼承,單繼承,多繼承

 

3、設計理念區別:

 -  抽象類:被繼承體現的是:"is a"的關係。抽象類中定義的是該繼承體系的共性功能。

 -  介面:被實現體現的是:"like a"的關係。介面中定義的是該繼承體系的擴充套件功能。