英文: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...