Java中的介面知識匯總_java

來源:互聯網
上載者:User

一.為什麼要使用介面

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

分析:首先防盜門是一個門,門有開門和關門的功能,還有一把鎖,鎖有開鎖和上鎖,按照物件導向的編程的思想,我們會將門和鎖都作為一個類而單獨存在,但是,不能讓防盜門繼承自門的同時又繼承自鎖,防盜門不是鎖,不符合繼承中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.介面的實作類別必須實現介面的全部方法,否則必須定義為抽象類別。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.