一、多態
1》定義:對象具有多種形態
注:繼承是多態的實現基礎
2》分類:
1.引用多態
父類的引用可以指向本類的對象
父類的引用可以指向子類的對象
2.方法多態
創建本類對象時,調用的方法爲本類方法
創建子類對象時,調用的方法爲子類重寫的方法或者繼承的方法
二、多態中的引用類型轉換
1》向上類型轉換(隱式/ 自動類型轉換),是小類型到大類型的轉換,無風險
2》向下類型轉換(強制類型轉換),是大類型到小類型,有風險,有可能發生溢出
3》instanceof運算符,來解決引用對象的類型,避免類型轉換的安全性問題。
通常和if語句配合來使用
三、Java中的抽象類
1》語法定義:抽象類前使用abstract關鍵字修飾,則該類爲抽象類。
2》應用場景:
1.在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法準確知道這些子類如何實現這些方法。
2.從多個具有相同特徵的類中抽象出一個抽象類,以這個抽象類作爲子類的模板,從而避免了子類設計的隨意性。
3》作用:
限制規定子類必須實現某些方法,但不關注實現細節
4》使用規則:
1.abstract定義抽象類
2.abstract定義抽象方法,只有聲明,不需要實現
3.包含抽象方法的類是抽象類
4.抽象類中可以包含普通的方法,也可以沒有抽象方法
5.抽象類不能直接創建,可以定義引用變量
注:抽象方法沒有方法體以分號結束
四、Java中的接口
1》接口概念:
類是一種具體實現體,而接口定義了某一批類所需要遵守的規範,接口不關心這些類的內部數據,也不關心這些類裏方法的實現細節,它只規定這些類裏必須提供某些方法
2》接口定義:
和類定義不同,定義接口使用interface關鍵字
3》基本語法:
[ 修飾符] [abstract] interface 接口名 [extends 父接口1, 父接口2...]{
零個到多個常量定義...
零個到多個抽象方法的定義...
}
接口就是用來被繼承、被實現的,修飾符一般建議用public
注:不能使用private 和 protected 修飾接口
常量:接口中的屬性是常量,即使定義時不添加public static final修飾符,系統也會自動加上
方法:接口的方法只能是抽象方法,總是使用,即使定義時不添加public abstract修飾符,系統也會自動添加
4》使用接口
一個類可以實現一個或多個接口,實現接口使用implements關鍵字,java中一個類只能繼承一個父類,是不夠靈活的,通過實現多個接口可以作補充。
繼承父類實現接口的語法爲:
[ 修飾符] [abstract] iclass 類名 extends 父類 implements 接口1,接口2..{
類體部分//如果繼承了抽象類,需要實現繼承的抽象方法;要實現接口中的抽象方法.
}
如果要繼承父類,繼承父類必須在實現接口之前。即extends 和implements 不能互換
5》另外一種接口的使用
接口在使用過程中,還經常與匿名內部類配合使用
匿名內部類就是沒有名字的內部類,多用與關注實現而不關注實現類的名稱。
語法格式:
Interface i = new Interface(){
public void method(){
System.out.println("匿名內部類實現接口的方式");
}
};
五、UML簡介
1》UML概念:
Unified Modeling Language(UML)又稱統一建模語言或標準建模語言
是一個支持模型化和軟件系統開發的圖形化語言,爲軟件開發的所有階段提供模型化和可視化支持。
2》UML圖示
常用UML圖:
1.用例圖(The Use Case Diagram)
用例圖能夠以可視化的方式,表達系統如何滿足所收集的業務規則,以及特定的用戶需求等信息。
2.序列圖(The Sequence Diagram)
序列圖用於按照交互發生的一系列順序,顯示對象之間的這些交互。
3.類圖(The Class Diagram )
UML類圖、業務邏輯和所有支持結構一同被用於定義全部的代碼結構。
3》UML建模工具
Visio、Rational Rose、PowerDesign三種建模工具應用最廣