抽象類
抽象類是一種模板模式,為所有子類提供乙個通用模板,子類可以在這個模板基礎上進行擴充套件。
通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們可以做到嚴格限制子類的設計,使子類之間更加通用。
抽象類的要點:
public
abstract
class
animal
}class
student
extends
study
}
1.抽象類的定義:抽象就是從多個事物中將共性的,本質的內容抽取出來。
2.抽象方法的由來:多個物件都具備相同的功能,但是功能具體內容有所不同,那麼在抽取過程中,只抽取了功能定義,並未抽取功能主體,那麼只有功能宣告,沒有功能主體的 方法稱為抽象方法。
2.1例子:例如:狼和狗都有吼叫的方法,可是吼叫內容是不一樣的。所以抽象出來的犬科雖然有吼叫功能,但是並不明確吼叫的細節。
3.抽象類的特點:
4.注意點:
介面就是比「抽象類」還要「抽象」的「抽象類」,可以更加規範的對子類進行約束。全面專業的實現了:規範和具體實現的分離。
抽象類還提供某些具體實現,介面不提供任何實現,介面中所有方法都是抽象方法,介面是完全面向規範的,規定了一批類具有的公共方法規範。
從介面的實現角度看,介面定義了可以向外部提供的服務
從介面的呼叫者角度看,介面定義了實現者能提供哪些服務
介面兩個模組之間通訊的標準,通訊的規範,如果能把你要設計的模組之間的介面定義好,就相當於完成了系統的設計大綱,剩下的就是添磚加瓦的具體實現了,大家在工作以後,做系統往往就是使用「面向介面」的思想設計系統。
介面和實現類不是父子關係,是實現規則的關係,比如:我定義乙個介面run,car實現它就能在地上跑,train實現它也能在地上跑,飛機實現它也能在地上跑。就是說,如果它是交通工具,就一定能跑,但是一定要實現run介面
訪問修飾符:只能用public或者預設
介面名:和類名採用相同命名機制
extends:介面可以多繼承
常量:介面中的屬性只能是常量,總是:public static final
方法:介面中的方法只能是public abstract。省略的話也是public abstract
1.子類通過implements來實現介面中的規範
2.介面不能建立例項,但是可用於宣告引用變數型別
3.乙個類實現了介面,必須實現介面中所有的方法,並且這些方法只能是public
的。1 降低程式的耦合性。其能夠最大限度的解耦,所謂解耦既是解耦合的意思,它和耦合相對。耦合就是聯絡
,耦合越強,聯絡越緊密。在程式中緊密的聯絡並不是一件好的事情,因為兩種事物之間聯絡越緊密,你更換
其中之一的難度就越大,擴充套件功能和debug的難度也就越大。
2 易於程式的擴充套件;
3 有利於程式的維護;
參考:參考:
介面,抽象類和抽象方法
1.定義介面 介面使用 inte ce 關鍵字宣告,它與類的宣告類似。介面宣告預設 是 public 的。通常介面命名已i字母開頭。inte ce 介面名 2.介面繼承介面 多個介面用,號進行區分 inte ce 介面名 繼承的介面名 3.類實現介面 訪問修飾符 class 類名 介面名 4.乙個類...
抽象類,抽象方法和介面
含有抽象方法的類 沒有方法實現體的方法就是抽象方法 抽象方法的關鍵字是abstract 抽象方法沒有方法體 public abstract 返回值資料型別 抽象方法名 引數列表 注意抽象方法沒有方法體 public abstract class 類名1.乙個類繼承抽象類,那麼就會重寫抽象類中所有的抽...
抽象方法和抽象類 介面
抽象方法 使用abstract修飾的方法,沒有方法體,只有宣告。定義的是一種 規範 就是告訴子類必須要給抽象方法提供具體的實現。抽象類 包含抽象方法的類就是抽象類。通過abstract方法定義規範,然後要求子類必須定義具體實現。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。抽象類...