基礎知識 介面和抽象類

2021-07-26 22:58:09 字數 1556 閱讀 9987

英文:inte***ce

乙個物件應該具有哪些公共的外部操作,即可使用inte***ce來規定

用於限定某個物件所必須擁有的公共操作方法的一種結構

注意:

1、介面方法,訪問許可權必須是公共的public

2、介面內只能有公共方法,不能存在成員變數

3、介面內只能含有未被實現的方法,也叫抽象方法,但是不用abstract關鍵字

4、實現該介面的類必須實現介面內所有的抽象方法

5、乙個類可以實現多個介面,介面與介面之間可以繼承

什麼是抽象方法?我們在類裡面定義的沒有方法體的方法就是抽象方法,所謂的沒有方

法體指的是,在方法宣告的時候沒有大括號以及其中的內容,而是直接在宣告時在方法名後

加上分號結束,另外在宣告抽象方法時還要加乙個關鍵字「abstract」來修飾;

例如:

abstract function fun1();

abstract function fun2();

上例是就是「abstract」修飾的沒有方法體的抽象方法「fun1()」和「fun2()」,不要忘記

抽象方法後面還要有乙個分號;那麼什麼是抽象類呢?只要乙個類裡面有乙個方法是抽象方

法,那麼這個類就要定義為抽象類,抽象類也要使用「abstract」關鍵字來修飾;在抽象類裡

面可以有不是抽象的方法和成員屬性,但只要有乙個方法是抽象的方法,這個類就必須宣告

為抽象類,使用「abstract」來修飾。

抽象類我們怎麼使用呢?最重要的一點就是抽象類不能產生例項物件,所以也不能直接使

用,前面我們多次提到過類不能直接使用,我們使用的是通過類例項化出來的物件,那麼抽

象類不能產生例項物件我們宣告抽象類有什麼用呢?我們是將抽象方法是做為子類過載的模

板使用的,定義抽象類就相當於定義了一種規範,這種規範要求子類去遵守,子類繼函抽象

類之後,把抽象類裡面的抽象方法按照子類的需要實現。子類必須把父類中的抽象方法全部

都實現,否則子類中還存在抽象方法,那麼子類還是抽象類,還是不能例項化對;為什麼我

們非要從抽象類中繼承呢?因為有的時候我們要實現一些功能就必須從抽象類中繼承,否則

這些功能你就實現不了,如果繼承了抽象類,就要實現類其中的抽象方法;

抽象類介面被實現

被繼承只能做方法申明

可以做方法申明也可以實現方法

變數只能是公共的靜態常量

普通的變數

設計的結果

抽象的結果

方法要全部實現

子類要全部實現

必須有方法

可以沒有方法

可繼承、多實現

單繼承只有抽象方法和不可變數

可以有具體方法和屬性

介面和抽象類的概念肯定不一樣。介面是對動作的抽象,即這個物件能做什麼;抽象類是對根源的抽象,即這個物件是什麼

舉個栗子:男人,女人,他們是什麼,人,如果要是再有個狗就不能抽象**了,為什麼呢,因為狗不是人,這個時候人就是乙個抽象類;

狗雖然不是人,但是人和狗都有嘴,都可以實現「吃東西」,所以這個就可以定義成乙個介面,這個方法他們就都能實現了

Java基礎知識 抽象類與介面

1.定義 用abstract關鍵字修飾,允許包含未實現方法的類被稱為抽象類。2.使用場景 如果擁有一些方法,並且想要其中一部分預設實現!3.定義格式 修飾符 abstract class 類名 注 1 抽象類不能例項化,既不能建立物件,只能作為父類用於被繼承 2 子類繼承乙個抽象類後,必須要實現父類...

C 基礎知識整理 基礎知識(6) 抽象類和抽象方法

在實際專案中,當我們設計乙個父類時,經常會遇到這個類不能確定它的具體執行流程的。比如我設計乙個檔案類 public class afile public string path public filetype type public afile string name,string path,fil...

C 基礎知識整理 基礎知識(6) 抽象類和抽象方法

在實際專案中,當我們設計乙個父類時,經常會遇到這個類不能確定它的具體執行流程的。比如我設計乙個檔案類 public class afile public string path public filetype type public afile string name,string path,fil...