java中接口的定義


使用interface來定義一個接口。接口定義同類的定義類似,也是分為接口的聲明和接口體,其中接口體由常量定義和方法定義兩部分組成。定義接口的基本格式如下:

[修飾符] interface 接口名 [extends 父接口名列表]{

[public] [static] [final] 常量;  //全局常量
[public] [abstract] 方法;  //抽象方法
}

 

修飾符:可選,用於指定接口的訪問權限,可選值為public。如果省略則使用默認的訪問權限。
接口名:必選參數,用於指定接口的名稱,接口名必須是合法的Java標識符。一般情況下,要求首字母大寫。
extends 父接口名列表:可選參數,用於指定要定義的接口繼承於哪個父接口。當使用extends關鍵字時,父接口名為必選參數。
方法:接口中的方法只有定義而沒有被實現。

 

public abstract void eat();  //接口中只能定義抽象方法

void eat(); //接口中定義的方法沒有聲明修飾符,默認為 public abstract

public static final int NUM = 10; //在接口中定義一個常量

int NUM = 10; //常量 

在JDK1.8后的新特性,可以被所有實現類

//接口之間可以多繼承(注意:類是只能單繼承)

//具體類實現接口必須實現接口的所有方法

 

接口的概念

1.接口是一組行為的規范、定義,沒有實現(JDK1.8默認方法)

2.使用接口,可以讓我們的程序更加利於變化

3.接口是面向對象編程體系中的思想精髓之一

4.面向對象設計法則:基於接口編程

 

接口的使用規則:

(1)定義一個接口,使用interface關鍵字

(2)在一個接口中,只能定義常量、抽象方法,JDK1.8后可以定義默認的實現方法

(3)接口可以繼承多個接口,extends xxx,xxx

(4)一個具體類實現接口使用inplements關鍵字

(5)一個類可以實現多個接口

(6)抽象實現接口可以不實現接口的方法

(7)在接口中定義的方法沒有聲明訪問修飾符,默認為public

(8)接口不能有構造方法

(9)接口不能被實例化

 

面向對象設計原則

(1)對修改關閉,對擴展開放

(2)面向接口編程

 

接口概述:

  • 狹義的角度講就是指java中的interface
  • 廣義的角度講對外提供規則的都是接口

接口特點:

  • 接口用關鍵字interface表示 interface 接口名{}
  • 類實現接口用implement表示 class 類名 implement 接口名{}
  • 接口不能實例化 按照多態的方式來實例化
  • 接口的子類 可以是抽象類(意義不大),可以是具體類(要重寫接口中的所有抽象方法)

一個類不寫繼承任何類,默認繼承object類

 

接口的成員特點:

成員變量:只能是常量,並且是靜態的並公共的,默認修飾符:public static final(不寫系統默認加上,沒有順序之分)

構造方法:接口沒有構造方法

成員方法:只能是抽象方法 默認修飾符: public abstract(默認加上)

 

類與類,類與接口,接口與接口的關系:

  • 類與類 只能單繼承,可以多層繼承
  • 類與接口
    • 實現關系,可以單實現,也可以多實現
    • 並且還可以在繼承一個類的同時實現多個接口
  • 接口與接口
    • 可以單繼承,也可以多繼承

 

抽象類和接口的區別

成員區別:

  • 抽象類
    • 成員變量:可以變量,也可以常量
    • 構造方法:有
    • 成員方法:可以抽象,也可以非抽象
  • 接口
    • 成員變量:只可以常量
    • 成員方法:只可以抽象

關系區別:

  • 類與類 繼承,單繼承
  • 類與接口 單實現,多實現、
  • 接口與接口 單繼承,多繼承

設計理念區別:

  • 抽象類 被繼承的體現是:“is a”的關系。抽象類中定義的是該繼承體系的共性功能
  • 接口 被實現體現的是:“like a”的關系。接口中定義的是該繼承體系的擴展功能

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM