天天看點

JAVA基礎抽象類與接口的差別

一.抽象類和接口的差別,主要注意接口的特殊性

A:成員差別

抽象類:

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

構造方法:有

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

接口:(在JDK8之後,成員方法可以用default和static修飾)

成員變量:隻可以常量 //預設修飾符:public static final

成員方法:隻可以抽象 //預設修飾符:public abstract

B:關系差別

類與類

繼承,單繼承

類與接口

實作,單實作,多實作

//多實作eg: class Son implements Father,Mother {}

接口與接口

繼承,單繼承,多繼承

//多繼承eg: interface Sister extends Father,Mother {}

C:設計理念差別

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

接口 被實作展現的是:”like a”的關系。接口中定義的是該繼承體系的擴充功能。