目錄
介面:
抽象類:
區別:
表象:
深層次理解:
類圖
使用抽象類前
使用抽象類后
為什么有了介面還要增加一層抽象類?
如果本篇博客對您有一定的幫助,大家記得留言+點贊+收藏哦,
介面:
介面里的方法和抽象類中的方法一樣,它的方法是抽象的,也就是說介面是不能具體化成物件的,
抽象類:
所謂抽象類是指只宣告方法的存在而不去實作它的類,抽象類不能實體化,也就是不能創建物件,
抽象方法和抽象類必須使用abstract修飾符來定義,有抽象方法的類只能定義成抽象類,抽象類里可以沒有抽象方法,
區別:
表象:
抽象類可以給出一些成員的實作,介面卻不包含成員的實作,抽象類的抽象成員可被子類部分實作,介面的成員需要實作類完全實作,一個類只能繼承一個抽象類,但是可以實作多個介面等,
深層次理解:
1.類是對物件的抽象,抽象類是對類的抽象,介面是對行為的抽象,介面是對類的區域(行為)進行抽象,而抽象類是對類整體(欄位、屬性、方法)的抽象,不論介面、抽象類、類、甚至物件,都是在不同層次、不同角度進行抽象的結果,他們的共性就是抽象,
如果行為跨域不同類的物件(飛機、麻雀、超人),可使用介面;對于一些相似的類的物件(貓狗),可繼承抽象類,
2.抽象類是從子類中發現公共的東西,泛化出父類,然后子類繼承父類,而介面是根本不知道子類的存在,方法如何實作還不確定,預先定義,
3.抽象類是自底向上抽象出來的,而介面則是自頂向下設計出來的,
類圖
使用抽象類前

使用抽象類后

為什么有了介面還要增加一層抽象類?
讓抽象類去實作介面,而不是每個實作類去實作介面,實作類一致的行為(或者說大部分一致的行為)在抽象類中進行實作,而不一致的行為(或者一小部分不一致的行為),在抽象類中寫成抽象方法,讓子類去重寫,減少子類重寫介面所有方法的負擔,
如果本篇博客對您有一定的幫助,大家記得留言+點贊+收藏哦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/397421.html
標籤:其他
上一篇:R語言自定義多分類混淆矩陣可視化函式(mutlti class confusion matrix)、R語言多分類混淆矩陣可視化
下一篇:R語言使用caret包的confusionMatrix函式計算混淆矩陣、使用撰寫的自定義函式可視化混淆矩陣(confusion matrix)
