java語言

當前位置 /首頁/計算機/java語言/列表

Java中介面的知識彙總

一.為什麼要使用介面

Java中介面的知識彙總

假如有一個需求:要求實現防盜門的功能。門有"開"和"關"的功能,鎖有"上鎖"和"開鎖"的功能。

分析:首先防盜門是一個門,門有開門和關門的功能,還有一把鎖,鎖有開鎖和上鎖,按照物件導向的程式設計的思想,我們會將門和鎖都作為一個類而單獨存在,但是,不能讓防盜門繼承自門的同時又繼承自鎖,防盜門不是鎖,不符合繼承中is a的關係,在java中支援單繼承。那麼我們如何來解決這一問題,這時就要用到介面。

二.什麼是介面

在軟體中介面是一種規範和標準,他們可以約束類的行為,是一些方法特徵的集合,但是沒有方法的實現,介面其實上也可以看做是一個特殊的抽象類,但是採用和抽象類完全不同的'方法來表示,兩者的設計理念也是不同的,抽象類有利於程式碼複用,介面利於程式碼的擴充套件和維護

三.抽象類和介面的區別:

01抽象類可以提供成員方法的實現細節,而介面中只能存在public abstract 方法;

02.抽象類中的成員變數可以是各種型別的,而介面中的成員變數只能是public static final型別的;

03.介面中不能含有靜態程式碼塊以及靜態方法,而抽象類可以有靜態程式碼塊和靜態方法;

04.一個類只能繼承一個抽象類,而一個類卻可以實現多個介面。

四.如何定義介面

首先先來看一下語法:

[修飾符] interface 介面名 extends 父介面1,父介面2,...

{

//常量定義

//方法定義

}

在一個類中實現介面語法:

class 類名 父類名 implements 介面1,介面2,.....

{

//類成員

}

五.定義介面注意點

01.介面的命名規則與類相同,如果修飾符是public ,則該介面在整個專案中可見;如果省略修飾符,則該介面只在當前包中可見。

02.介面中可以定義常量,不能定義變數,如果你在介面中定義屬性,那麼通過反編譯可以看見他會自動用public static final 修飾,介面中的屬性都是全域性靜態常量,介面中的常量必須在定義時指定初始值。

03.介面中所有的方法都是抽象方法,介面中方法都會自動用public abstract 修飾,即介面中只有全域性抽象方法。

04.介面不能例項化,介面中不能有構造。

05介面之間可以通過extends實現繼承關係,一個介面可以繼承多個介面,但介面不能繼承類。

06.介面的實現類必須實現介面的全部方法,否則必須定義為抽象類。

TAG標籤:JAVA 彙總 介面 #