[Java] 抽象類別和介面

來源:互聯網
上載者:User

標籤:樣本   並且   特點   執行個體化   line   修飾符   test   資訊   方式   

目錄
  1. 抽象類別
  2. 介面
1抽象類別定義

如果一個類沒有足夠的資訊來描述一個具體的對象,而需要其他具體的類來執行個體化的類,我們稱它為抽象類別。

抽象類別的特點
  • 抽象類別不能被執行個體化,但可以引用子類對象。
  • 子類必須實現抽象類別的抽象方法。如果子類也是抽象類別,可以不實現抽象類別的方法。
  • 抽象類別中可以包含具體的方法,也可以包含抽象的方法。
  • 子類中的抽象方法不能與父類的抽象方法同名。
  • abstract 不能與final 並列修飾同一個類。
  • abstract 不能與private、static、final、或native並列修飾一個方法。
樣本
public abstract class Test{    // 屬性    public int var = 0;        //抽象方法    public abstract void hello();        //具體方法    public void hello2{        System.out.println("Hello2");    }    }

 

2 介面定義
  1. 介面並不是類,編寫介面的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法。介面則包含類要實現的方法。
  2. 除非實現介面的類是抽象類別,否則該類要定義介面中的所有方法。
  3. 介面無法被執行個體化,但是可以被實現。抽象類別可以繼承介面但不實現介面中的類。
  4. 介面類型可以用來聲明一個變數。作為一個引用。
  5. 介面描述的是一個具體的對象的局部。
介面特性
  • 介面中每一個方法也是隱式抽象的,介面中的方法會被隱式地被指定為public abstract(只能是public abstract,其他修飾符都會報錯)。
  • 介面中可以含有變數,但是介面中的變數會被隱式地被指定為public static final 變數(並且只能是public,用private修飾會便會報錯)
  • 介面中的方法不能在介面中實現,只能由實現該介面的類來實現介面中的方法。
樣本
public interface Test{    // 屬性    public static final int var = 1;    // 方法    public void hello(); // 隱式定義為public abstract}

 

抽象類別和介面的區別
  1. 抽象類別中的方法可以有方法體,就是能實現方法的具體功能,但是介面中的方法不行。
  2. 抽象類別中的成員變數可以是各種類型的,而介面中的成員變數只能是public static final 類型的。
  3. 介面中不能包含靜態代碼塊以及靜態方法,而抽象類別是可以有靜態代碼塊和靜態方法的。
  4. 一個類只能繼承一個抽象類別,而一個類可以實現多個介面。

 

參考:

http://www.runoob.com/java/java-interfaces.html

[Java] 抽象類別和介面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.