Java物件導向學習筆記 -- 5(抽象類別、介面)

來源:互聯網
上載者:User

標籤:抽象類別   區別   interface   介面   abstract   


 

1. 抽象類別

    抽象就是將擁有共同方法和屬性的對象提取出來,提取後,重新設計一個更加通用、更加福士化的類,就叫抽象類別。

    1)抽象方法:由abstract修飾,只有方法的定義,沒有方法的實現;

    2)包含抽象方法的類必須是抽象類別;

    3)抽象類別:由abstract修飾,不能被執行個體化,可以包含抽象方法和非抽象方法;

    4)抽象類別都是需要被繼承的,子類繼承後再實現以下操作:

        4.1)子類中重寫父類的抽象方法

        4.2)子類也聲明為抽象類別

    5)抽象類別的意義:

        5.1)封裝子類共有的變數和方法--代碼的重用

        5.2)為子類提供一種公用的類型--向上造型

        5.3)定義抽象方法,子類重寫它,為子類提供一個公用的入口


2. 介面

    1)制定一個標準、規範

    2)只要遵守了標準,就能做某件事

    3)由interface定義

            介面中只能包含常量和抽象方法--資料預設為常量(public static final),

            方法預設為抽象的(public abstract) 

    4)介面不能被執行個體化

    5)介面需要被實現的,子類實現介面, 必須重寫介面中的所有抽象方法 

    6)一個類可以實現多個介面, 又繼承類,又實現介面時,需先繼承再實現 

    7)介面之間可以繼承(extends)


3. 抽象類別和介面的區別

    ① 從文法角度:abstract class方法中可以有自己的資料成員,也可以有非abstract的成員方法,並賦予方法的預設行為,而在interface方式中一般不定義成員資料變數,所有的方法都是abstract,方法不能擁有預設的行為。

    ② 從編程的角度:abstract class在java語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。而一個類可以實現多個interface。 

    ③ 從問題域角度:abstract class在Java語言中體現了一種繼承關係,要想使得繼承關係合理,父類和衍生類別之間必須存在"is a"關係,即父類和衍生類別在概念本質上應該是相同的。對於interface 來說則不然,並不要求interface的實現者和interface定義在概念本質上是一致的,僅僅是實現了interface定義的契約而已。

    詳細區別:

    1.抽象類別可以有構造方法,介面中不能有構造方法。

    2.抽象類別中可以有普通成員變數,介面中沒有普通成員變數

    3.抽象類別中可以包含非抽象的普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的普通方法。

    4.抽象類別中的抽象方法的訪問類型可以是public,protected,但介面中的抽象方法只能是public類型的,並且預設即為public abstract類型。

    5.抽象類別中可以包含靜態方法,介面中不能包含靜態方法

    6.抽象類別和介面中都可以包含靜態成員變數,抽象類別中的靜態成員變數的訪問類型可以任意,但介面中定義的變數只能是public static final類型。

    7. 一個類可以實現多個介面,但只能繼承一個抽象類別。


本文出自 “永遠年輕” 部落格,請務必保留此出處http://kingkongzhao.blog.51cto.com/6319491/1655272

Java物件導向學習筆記 -- 5(抽象類別、介面)

聯繫我們

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