標籤:抽象類別 介面 javase
抽象類別:在某些類中某些功能不能定義具體的行為功能,這種功能稱之為抽象功能,含有抽象功能的類,就稱為抽象類別。
抽象類別的特點:抽象類別和抽象方法必須用abstract關鍵字修飾
抽象類別的格式: abstract class類名{}
抽象方法的格式: public abstract void 方法()
抽象類別不一定含有抽象方法,有抽象方法的類一定是抽象類別。
抽象類別不能執行個體化,因為該類不是具體的實作類別。
抽象類別需要按照多態的形式,由具體的子類執行個體化。
抽象類別的子類要麼是抽象類別,要麼必須重寫並實現抽象類別中的所有方法。
抽象類別是有構造方法的,但是不能進行執行個體化,構造方法的作用是用於子類訪問父類資料時進行父類資料的初始化。
抽象方法的存取權限必須是public
抽象類別的成員特點:
成員變數:可以是變數或者常量
構造方法:有構造方法,但是無法執行個體化。
成員方法:可以是抽象方法,也可以是非抽象的成員方法。
抽象方法的作用:強制子類做自己的事情
非抽象方法:交由子類繼承,提高代碼的複用性。
抽象可以有靜態變數,常量和靜態方法。
方法的空實現並不等同於該方法是一個抽象方法。
多態的實現,是為了提高程式的可擴充性。
在軟體開發中一般會定義一個空的類作為基類,便於組織和管理代碼的體繫結構。
軟體分析的過程:從具體功能到抽象定義。
軟體的實現過程:從抽象定義到具體功能。
抽象類別的小問題
1. 抽象類別不能用final修飾。抽象方法也不能用final修飾。
2. 抽象方法不能用private修飾。
3. 抽象方法不能用static修飾。
介面:用來表現一些特殊的功能的抽象敘述,交由實現介面的類完成介面中的方法。
介面的特點:
介面用關鍵字interface表示
格式:interface 介面名{}
類實現介面的方式 calss 類名 implements 介面名{}
介面的執行個體化:介面不能直接執行個體化,需要按照多態的方式,由具體的子類進行執行個體化。介面也是多態的一種表現形式
實現介面的類,要麼是抽象類別,要麼重寫並實現了介面中的所有抽象方法。
介面中定義的變數預設都是用 public static
介面中定義的方法預設都是用public abstract 修飾的。
介面裡面定義的內部類,介面預設都是用public static修飾的
介面可以繼承介面。
介面裡面可以沒有任何成員,從而作為某種標示。
介面和抽象類別的區別?
介面不能有非抽象方法和 非靜態變數。
介面的抽象類別實現沒有實際的意義。
多態的三種表現形式:具體類多態 抽象類別多態 介面多態
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
抽象類別與介面學習小結